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使用的更多相关文章

  1. DataTable的Merge\COPY\AcceptChange使用说明

    在C#内使用DataTable的Merge().Copy().AcceptChange().Clone()方法的用途如下: 1.Merge()可将两个不同的表结构的表进行合并,合并后新表的列为之前两表 ...

  2. ADO.NET编程之美----数据访问方式(面向连接与面向无连接)

    最近,在学习ADO.NET时,其中提到了数据访问方式:面向连接与面向无连接.于是,百度了一下,发现并没有很好的资料,然而,在学校图书馆中发现一本好书(<ASP.NET MVC5 网站开发之美&g ...

  3. .NET软件工程师面试总结

    1.手写画出系统架构图,系统代码架构,有什么技术难点?  2.手写画出系统部署图 CDN(一般购买别人的服务器会自动CDN,他们自己配置就OK啦) 3.asp.net 的session怎么实现会话共享 ...

  4. C#中的DataTable简单使用Merge

    //不同结构的DataTable追加第二个DataTable数据在对应行后的 简单使用//不同结构的DataTable追加在行后面的合并 DataTable dt = new DataTable(); ...

  5. DataTable 设置primarykey 后进行 Merge操作

    1.先查看概念 可以看highplayer博客 http://blog.csdn.net/highplayer/article/details/6613817 2. protected void st ...

  6. 【转载】C#的Merge方法合并两个DataTable对象的数据

    在C#中的Datatable类中,可以使用DataTable类的Merge方法对两个相同结构的DataTable对象进行求并集运算,将两个DataTable对象的数据行合并到其中一个DataTable ...

  7. C# DataTable的詳細用法

    转载别人的转载,原作者都不知道了 在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一 ...

  8. 取两个DataTable的交集,删除重复数据

    /// <summary> /// 取两个DataTable的交集,删除重复数据 /// </summary> /// <param name="sourceD ...

  9. DataTable汇总

    一.排序 1 获取DataTable的默认视图 2 对视图设置排序表达式 3 用排序后的视图导出的新DataTable替换就DataTable (Asc升序可省略,多列排序用"," ...

随机推荐

  1. 谓词的使用 -ios

    #import <Foundation/Foundation.h> @interface Person : NSObject<NSCopying> @property(nona ...

  2. PHP快速排序及其时间复杂度

    <?php function quickSort(&$arr, $l, $r) { if (count($arr)<2 || $l>$r) return; $tmp_l = ...

  3. 使用架构(XSD)验证XML文件

    假使说XML是一个数据库,那么XSD就是这个数据库的结构.由此可见,XSD是如此重要,如果没有它,我们如何声明以及验证我们需要的XML数据文件的格式和合法性呢?那是不可能完成的任务,如果你将XML数据 ...

  4. 【转】Asp.net中时间格式化的6种方法详细总结

    1. 数据控件绑定时格式化日期方法: 代码如下: <asp:BoundColumn DataField="AddTime" HeaderText="添加时间&quo ...

  5. eclipse color themes 让eclipse编码好看点

    http://eclipsecolorthemes.org/ 就是这个,很好用的! 安装后需要重启Eclipse.重启后打开Window->Preferences->General-> ...

  6. MySQL5.7.13源码编译安装指南(转)

    系统 CenterOs 6.5 1.安装依赖包(cmake make gcc等,其实好多都有了,不需要更新,为了防止世界被破坏,就装下) yum install gcc gcc-c++ -yyum i ...

  7. [轉]Android的内存泄漏和调试

    一. Android的内存机制 Android的程序由Java语言编写,所以Android的内存管理与Java的内存管理相似.程序员通过new为对象分配内存,所有对象在java堆内分配空间:然而对象的 ...

  8. DataGridView 添加行号

    private void dataGridViewX1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) { //Dat ...

  9. Struts 1.3(第一例) - Login

    本想跳过直接学Struts 2的,想想,还是先学Struts 1,万一到时去那个公司,人家用的是1,那还是要学,以及了解下1与2的区别在哪里. 上例子,很简单的一个网上login例子,再思考下Stru ...

  10. Nginx做反向代理总是被系统kill

    公司使用Nginx做反向代理,以前都挺正常的,最近不知怎么回事总是无端被系统kill,而在nginx错误日志中也没有信息输出. 网上查了很多资料,也没什么靠谱的回答,唯一觉得有点关联的就是linux ...