DataTable的Merge使用
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication1
{
class Program
{
private static void PrintValues(DataTable table)
{
string label = table.TableName;
Console.WriteLine("TableName: " + table.TableName); foreach (DataColumn column in table.Columns)
{
Console.Write("\t " + column.ColumnName);
}
Console.WriteLine();
foreach (DataRow row in table.Rows)
{
foreach (DataColumn column in table.Columns)
{
Console.Write("\t |{0}|", row[column]);
}
Console.WriteLine();
}
}
static void Main(string[] args)
{
DataTable dtWs = new DataTable("dtWs");
//DataColumn dcWsWId = new DataColumn("WID", Type.GetType("System.Int32"));//“System.Data.DataException”类型的未经处理的异常在 System.Data.dll 中发生其他信息: < target >.WID 和<source>.WID 擁有衝突的屬性: DataType 屬性不符。
DataColumn dcWsWId = new DataColumn("WID", Type.GetType("System.String"));
DataColumn dcWsFId = new DataColumn("FID", Type.GetType("System.String"));
DataColumn dcBNId = new DataColumn("ADD", Type.GetType("System.String"));
dtWs.Columns.Add(dcWsWId);
dtWs.Columns.Add(dcWsFId);
dtWs.Columns.Add(dcBNId);
dtWs.PrimaryKey = new DataColumn[] { dcWsWId, dcWsFId };
for (int i = ; i < ; i++)
{
DataRow drNew = dtWs.NewRow();
drNew["WID"] = i;
drNew["FID"] = "";
drNew["ADD"] = "BBBB" + i;
dtWs.Rows.Add(drNew);
}
PrintValues(dtWs); DataTable dtQry = new DataTable("dtQry");
DataColumn dcWId = new DataColumn("WID", Type.GetType("System.String"));
DataColumn dcFId = new DataColumn("FID", Type.GetType("System.String"));
DataColumn dcNId = new DataColumn("Name", Type.GetType("System.String"));
dtQry.Columns.Add(dcWId);
dtQry.Columns.Add(dcFId);
dtQry.Columns.Add(dcNId);
dtQry.PrimaryKey = new DataColumn[] { dcWId, dcFId };
for (int i = ; i < ; i++)
{
DataRow drNew = dtQry.NewRow();
drNew["WID"] = i;
drNew["FID"] = "";
drNew["Name"] = "AAAA" + i;
dtQry.Rows.Add(drNew);
}
PrintValues(dtQry); dtQry.Merge(dtWs, true, MissingSchemaAction.AddWithKey);
PrintValues(dtQry); dtQry.Merge(dtWs, false, MissingSchemaAction.AddWithKey);
PrintValues(dtQry); Console.Read();
}
}
}
執行結果:
DataTable的Merge使用的更多相关文章
- DataTable的Merge\COPY\AcceptChange使用说明
在C#内使用DataTable的Merge().Copy().AcceptChange().Clone()方法的用途如下: 1.Merge()可将两个不同的表结构的表进行合并,合并后新表的列为之前两表 ...
- ADO.NET编程之美----数据访问方式(面向连接与面向无连接)
最近,在学习ADO.NET时,其中提到了数据访问方式:面向连接与面向无连接.于是,百度了一下,发现并没有很好的资料,然而,在学校图书馆中发现一本好书(<ASP.NET MVC5 网站开发之美&g ...
- .NET软件工程师面试总结
1.手写画出系统架构图,系统代码架构,有什么技术难点? 2.手写画出系统部署图 CDN(一般购买别人的服务器会自动CDN,他们自己配置就OK啦) 3.asp.net 的session怎么实现会话共享 ...
- C#中的DataTable简单使用Merge
//不同结构的DataTable追加第二个DataTable数据在对应行后的 简单使用//不同结构的DataTable追加在行后面的合并 DataTable dt = new DataTable(); ...
- DataTable 设置primarykey 后进行 Merge操作
1.先查看概念 可以看highplayer博客 http://blog.csdn.net/highplayer/article/details/6613817 2. protected void st ...
- 【转载】C#的Merge方法合并两个DataTable对象的数据
在C#中的Datatable类中,可以使用DataTable类的Merge方法对两个相同结构的DataTable对象进行求并集运算,将两个DataTable对象的数据行合并到其中一个DataTable ...
- C# DataTable的詳細用法
转载别人的转载,原作者都不知道了 在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一 ...
- 取两个DataTable的交集,删除重复数据
/// <summary> /// 取两个DataTable的交集,删除重复数据 /// </summary> /// <param name="sourceD ...
- DataTable汇总
一.排序 1 获取DataTable的默认视图 2 对视图设置排序表达式 3 用排序后的视图导出的新DataTable替换就DataTable (Asc升序可省略,多列排序用"," ...
随机推荐
- Phython 学习笔记之——类的初步认识
类是面向对象编程的核心,他扮演相关数据及逻辑容器的角色.他们提供了创建实例对象的蓝图.因为python语言不要求必须以面向对象的方式编程(与JAVA不同),这里简单的举一个例子. 如何定义一个类 cl ...
- 使用JavaScript 实现注册表单的校验
说明:在点击提交时进行表单校验,具体要求如下: 1)用户名为3~16个字符,且不能包含”@”和”#”字符: 2)密码和校验密码必须一致,且长度在8个字符到16个字符: 3)兴趣爱好至少选择一项: 4) ...
- shell脚本实例-菜单样例
1.9.1 实例需求 用户在进行Linux系统管理的过程中,经常需要用到查看进程的信息.用户的信息等常用的功能.本例针对这一需求,使用shell编程实现基本的系统管理 功能.通过本程序,可以按照要求实 ...
- 【转】3篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:官方原生方法分析
作者: 牛A与牛C之间 时间: 2013-11-17 分类: 技术文章 | 暂无评论 | 编辑文章 主页 » 技术文章 » 第3篇:Xilium CefGlue 关于 CLR Object 与 JS ...
- spring mvc 利用匿名内部类构建返回json对象
@RequestMapping(value = "/order/findOrderByIdVague/{noId}.json", method = {RequestMethod.G ...
- Oracle对索引列同时使用多个聚合函数的性能问题
Oracle某一数据表tkk715(数据量在一千万左右),对一个索引字段做获取最大值与最小值的聚合函数操作,响应时间较长(超过3秒): 将SQL改写为分别取最大.最小的聚合值,IO和响应时间显著下降到 ...
- mootools里选择器$,$$,$E,$ES等的区别
区别就是 $和$$都是1个参数, $适用于ID,或者ID代表的对象 $$适用于CSS选择器 $E和$ES,有2个参数,第二个参数是可选参数代表(filter,即某个ID范围里的元素) $E('inpu ...
- 图像特征提取之(一)HOG特征
1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和统计图像局部区域的 ...
- Redis启动警告错误解决
启动错误 (1)WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxc ...
- js常见数字处理整理
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...