C# 实现Table的Merge,Copy和Clone
程序员文章站
2024-01-02 12:47:10
c#实现的对两个table进行merge,两表必须存在至少一个公共栏位作为连接项,否则连接就失去了意义。如下是对两个table进行merge的详细代码:private void button1_cli...
c#实现的对两个table进行merge,两表必须存在至少一个公共栏位作为连接项,否则连接就失去了意义。如下是对两个table进行merge的详细代码:
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的资料请关注其它相关文章!