C#中Merge方法实现把不同表结构的表合并成一张表,同时合并数据
2014-03-11 20:12
597 查看
以前做评教系统时记得想把2张表结构不同的表合成一张表,当时没找到使用代码如何实现,最后采用了建立视图的方式方法实现.今天解决某个问题时突然看到了Merge方法可以不建立视图就解决我当时的问题,记录下来:
使用Merge方法把2张拥有不同机构的表合成一张表.
有这样2张表:
第1张结构ID,Name 数据(1, "Age ") (2, "Apple ") (3, "Orange ");
第2张表结构ID,Price 数据(1, 10) (2, 6) (3, 7);
想要的表结构:ID,Name,Price 合并后数据(1,"Age",10) (2,"Apple",6) (3,"Orange",7)
怎么将表结构合并同时把数据也合并到表中呢?看下面的例子:
DataTable dt1 = new DataTable();
dt1.Columns.Add( "ID ", typeof(int));
dt1.Columns.Add( "Name ", typeof(string));
dt1.PrimaryKey = new DataColumn[] { dt1.Columns[0]};
dt1.Rows.Add(1, "Age ");
dt1.Rows.Add(2, "Apple ");
dt1.Rows.Add(3, "Orange ");
DataTable dt2 = new DataTable();
dt2.Columns.Add( "ID ", typeof(int));
dt2.Columns.Add( "Price ", typeof(decimal));
dt2.PrimaryKey = new DataColumn[] { dt2.Columns[0] };
dt2.Rows.Add(1, 10);
//dt2.Rows.Add(2, 6);
dt2.Rows.Add(3, 7);
DataTable dt3 = dt1.Copy();
dt3.Merge(dt2);//也可以:dt1.Merge(dt2);DataTable dt3=dt1.Copy();
我的这种解决方式显然比这个问题的最佳答案更优雅和简洁:
http://zhidao.baidu.com/question/48304907.html
------------
SqlDataAdapter sda = new SqlDataAdapter("select * from academy", con);
DataSet ds = new DataSet();
sda.Fill(ds);
sda = new SqlDataAdapter("select * from resultstate", con);
DataSet ds1 = new DataSet();
sda.Fill(ds1);
ds1.Merge(ds, true, MissingSchemaAction.AddWithKey);//j就是多这一句哈
dataGridView1.DataSource = ds1.Tables[0];
使用Merge方法把2张拥有不同机构的表合成一张表.
有这样2张表:
第1张结构ID,Name 数据(1, "Age ") (2, "Apple ") (3, "Orange ");
第2张表结构ID,Price 数据(1, 10) (2, 6) (3, 7);
想要的表结构:ID,Name,Price 合并后数据(1,"Age",10) (2,"Apple",6) (3,"Orange",7)
怎么将表结构合并同时把数据也合并到表中呢?看下面的例子:
DataTable dt1 = new DataTable();
dt1.Columns.Add( "ID ", typeof(int));
dt1.Columns.Add( "Name ", typeof(string));
dt1.PrimaryKey = new DataColumn[] { dt1.Columns[0]};
dt1.Rows.Add(1, "Age ");
dt1.Rows.Add(2, "Apple ");
dt1.Rows.Add(3, "Orange ");
DataTable dt2 = new DataTable();
dt2.Columns.Add( "ID ", typeof(int));
dt2.Columns.Add( "Price ", typeof(decimal));
dt2.PrimaryKey = new DataColumn[] { dt2.Columns[0] };
dt2.Rows.Add(1, 10);
//dt2.Rows.Add(2, 6);
dt2.Rows.Add(3, 7);
DataTable dt3 = dt1.Copy();
dt3.Merge(dt2);//也可以:dt1.Merge(dt2);DataTable dt3=dt1.Copy();
我的这种解决方式显然比这个问题的最佳答案更优雅和简洁:
http://zhidao.baidu.com/question/48304907.html
------------
SqlDataAdapter sda = new SqlDataAdapter("select * from academy", con);
DataSet ds = new DataSet();
sda.Fill(ds);
sda = new SqlDataAdapter("select * from resultstate", con);
DataSet ds1 = new DataSet();
sda.Fill(ds1);
ds1.Merge(ds, true, MissingSchemaAction.AddWithKey);//j就是多这一句哈
dataGridView1.DataSource = ds1.Tables[0];
相关文章推荐
- AE+C# 实现MERGE, AE实现相同结构图层的合并C#代码(转载)
- 数据结构(C#)--递归和动态规划法实现斐波那契数列的方法
- C#实现把dgv里的数据完整的复制到一张内存表的方法
- MERGE语句用来合并UPDATE和INSERT语句,一张表的大数据操作,要同时进行增删改,提高性能
- 比较C#三种方法实现读取Execl数据到数据库
- EXPDP/IMPDP与EXP/IMP在不同用户和表空间之间迁移数据的实现方法
- PLSQL Developer来实现不同数据库的表结构以及表数据同步
- 数据结构与算法(C#实现)系列---AVLTree(二)(外摘)
- [置顶]C#中使用Redis不同数据结构的内存占有量的疑问和对比测试
- Oracle触发器实现插入或更新一张表数据同时插入或更新另一张表
- 算法第三次作业(1. 排序。对文件 largeW.txt(下载链接)中的数据,编程实现冒泡排序(方法名:bubbleSort) 与 归并排序(mergeSort),把排序后的结果分别保存到largeW
- 实例详解C#实现http不同方法的请求
- C#实现Winform间的数据交互的三种方法
- 关于dorado框架datatable处的右键菜单无法根据具体数据实现动态分别显示不同菜单的解决方法
- C#实现打开画图的同时载入图片、最大化显示画图窗体的方法
- 数据结构与算法(C#实现)系列---演示篇(一)(外摘)
- MYSQL使用.frm恢复数据表结构的实现方法
- C++联合体转换成C#结构的实现方法
- c#实现数据同步的方法(使用文件监控对象filesystemwatcher)