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. #你好Unity3D#Hierarchy视图监听gameObject点击事件

    今天无意间又找到了个好方法     1 2 3 4 5 6 7 8 9 10 [InitializeOnLoadMethod] static void Start () {   Selection.s ...

  2. 深入浅出Attribute (转载)

    原文地址:http://blog.csdn.net/FantasiaX/article/details/1627694 正文: 什么是Attribute?Attribute是干什么使的?Attribu ...

  3. unity,standalone下自定义分辨率不起作用的解法

    写一个Editor脚本AddMenu.cs:using UnityEditor; using UnityEngine; public class AddMenu : EditorWindow { [M ...

  4. TaffyDB:开源JavaScript数据库

    你是否曾经注意到javascript的对象有点像数据库中的记录,你把很多javascript对象包装到一起时就像是你在处理一个数据库中的表,TaffyDB是一个Javascript库,它提供了强大的数 ...

  5. Linux-LVS+keepalived-Testing

    LVS:Linux Virtual Server+++++++++++++Info+++++++++++VIP:172.18.20.222LVS-Master IP:172.18.20.206LVS- ...

  6. mysql row number的实现

    CREATE TABLE `test_id` (`id` int(11) NOT NULL DEFAULT 0 ,`name` varchar(255) CHARACTER SET utf8 COLL ...

  7. label标签的用法

    label 标签for属性 <h1>显式指定通过for(for的值就是对应radio的id的值)</h1> <form> <label for="m ...

  8. php计算字符串长度:utf8编码,包含中文

    php计算字符串长度:utf8编码 中文当作1个字符处理(strlen默认当作两个字符) 上函数: /** * 计算 UTF-8 字符串长度 * * @param string $str * @ret ...

  9. 三星电视删除USB播放记录

    当使用三星UA40系列电视机播放USB设备中的文件后,会将播放的历史记录存储在电视里.如果想要清除这些播放记录,需要将电视机复位,操作方法如下: 这里提醒您:复位后电视的所有设置都将恢复为出厂默认设置 ...

  10. Haroopad 写 markdown文本

    很好用,推荐大家都来用. http://www.csdn.net/article/2014-05-05/2819623