C#实现的对两个Table进行Merge,两表必须存在至少一个公共栏位作为连接项,否则连接就失去了意义。如下是对两个table进行Merge的详细代码:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
private void button1_Click( object sender, EventArgs e) //Button点击触发事件 { #region Table的Merge DataTable dt = new DataTable(); DataTable dt1 = new DataTable(); //创建Table1 dt1.Columns.Add( "ID" , typeof ( string )); dt1.Columns.Add( "NAME" , typeof ( string )); dt1.Columns.Add( "AGE" , typeof ( int )); dt1.Columns.Add( "SEX" , typeof ( string )); dt1.PrimaryKey = new DataColumn[] { dt1.Columns[ "ID" ]}; for ( int i = 0; i < 5; i++) { DataRow dr = dt1.NewRow(); dr[ "ID" ] = "00" + i.ToString(); dr[ "NAME" ] = "00-" + i.ToString(); dr[ "AGE" ] = 15 + i; dr[ "SEX" ] = "M" ; dt1.Rows.Add(dr); } dt = dt1; DataTable dt2 = new DataTable(); //创建Table2 dt2.Columns.Add( "ID" , typeof ( string )); dt2.Columns.Add( "NAME" , typeof ( string )); dt2.Columns.Add( "Course" , typeof ( string )); dt2.Columns.Add( "Score" , typeof ( int )); dt2.PrimaryKey = new DataColumn[] { dt2.Columns[ "ID" ] }; for ( int i = 0; i < 5; i++) { DataRow dr = dt2.NewRow(); dr[ "ID" ] = "00" + i.ToString(); dr[ "NAME" ] = "00-" + i.ToString(); dr[ "Course" ] = "C#" ; dr[ "Score" ] = i + 80; dt2.Rows.Add(dr); } dt = dt2; dt1.Merge(dt2); //Copy var table1 = dt1.Copy(); //Copy,复制表的结构以及数据 //添加新的一行 DataRow dr1 = table1.NewRow(); dr1[ "ID" ] = "005" ; dr1[ "NAME" ] = "00-5" ; dr1[ "AGE" ] = 15; dr1[ "SEX" ] = "F" ; table1.Rows.InsertAt(dr1,2); //表的指定位置插入新增加的一行 table1.Columns.Add( new DataColumn() { ColumnName = "Memo" , DataType = typeof ( string ) }); //默認插入到最後一列 table1.Columns[ "Memo" ].SetOrdinal(0); //把插入的列移动到第一行 int memoIndex = table1.Columns.IndexOf( "Memo" ); //获取列的位置信息 var isContainName = table1.Columns.Contains( "NAME" ); //判断table中是否存在某列 List< string > columnsNameList = new List< string >(); //遍历获取table的所有列名 foreach (DataColumn col in table1.Columns) { columnsNameList.Add(col.ColumnName); } table1.Columns.RemoveAt(memoIndex); //通过列名的索引进行移除 table1.Columns.RemoveAt(2); //通过列名的索引进行移除 table1.Columns.Remove( "SEX" ); //通过列名进行移除,建议使后者 string [] name = new string [table1.Rows.Count]; //方法一:对表中的数据进行遍历输出 string [] id = new string [table1.Rows.Count]; for ( int i = 0; i < table1.Rows.Count; i++) { name[i] = table1.Rows[i][ "NAME" ].ToString(); id[i] = table1.Rows[i][ "ID" ].ToString(); } table1.Clear(); //清空表中的数据 //Clone var table2 = dt2.Clone(); //Clone,复制表的结构、约束信息 #endregion } |
以上就是C# 实现Table的Merge,Copy和Clone的详细内容,更多关于c# table Merge的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/wml-it/p/12204838.html