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. android XML解析器全解案例

    1.使用pull解析 package com.example.myxml; import java.io.InputStream; import java.util.ArrayList; import ...

  2. Uinty3d 镜面反射代码

    镜面反射代码 文件名MirrorReflection.cs 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 ...

  3. ABBYY是怎么自定义主窗口的

    启动 ABBYY FineReader OCR文字设别软件时,将打开其主窗口.同时将显示任务窗口,可以启动内置或自定义自动化任务. 主窗口显示目前打开的 ABBYY FineReader 文档. ● ...

  4. 8000401a 错误 ,检索 COM 类工厂中 CLSID 为 的组件时失败,原因是出现以下错误: 8000401a。

    "/"应用程序中的服务器错误. -------------------------------------------------------------------------- ...

  5. System.Threading.ThreadAbortException: 正在中止线程。

    在 System.Threading.ThreadAbortException 中第一次偶然出现的"mscorlib.dll"类型的异常 "System.Threadin ...

  6. awk命令拷屏

    如果不指明采取什么动作,awk默认打印出所有浏览出的记录,与{print $}是一样的 模式和动作两者是可选的,如果没有模式,则action应用到全部记录,如果没有action,则输出匹配全部记录. ...

  7. 什么是JDK

    Java Development Kit (JDK) 是太阳微系统针对Java开发人员发布的免费软件开发工具包(SDK,Software development kit).JDK 是整个Java的核心 ...

  8. [svn]svn: E155015: 提交失败(细节如下) 解决办法

    svn 出现冲突是经常发生的事,最近改用命令操作svn,用界面电脑有些反应慢 出现冲突使用svn 命令肯定也是可以解决的: 查看警告信息提示冲突的文件,执行 svn resolved <文件名& ...

  9. Struts2 - Rest(1)

    Struts2提供了一个restful的插件:struts2-rest-plugin-2.3.16.1.jar 这个插件可以把Struts2当做restful来使用,不过它的rest功能目前来说有点“ ...

  10. [系统集成] Android 自动构建系统

    一.简介 android app 自动构建服务器用于自动下载app代码.自动打包.发布,要建立这样的服务器,关键要解决以下几个问题: 1. android app 自动化打包android 的打包一般 ...