C#实现的Table的Merge,以及实现Table的Copy和Clone
程序员文章站
2023-11-02 14:38:04
C#实现的对两个Table进行Merge,两表必须存在至少一个公共栏位作为连接项,否则连接就失去了意义。如下是对两个table进行Merge的详细代码: private void button1_Click(object sender, EventArgs e)//Button点击触发事件 { #r ......
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,以及实现Table的Copy和Clone
-
C#实现把查询出的Table作为参数更新到数据库
-
jQuery实现table表格信息的展开和缩小功能示例
-
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
-
结合bootstrap fileinput插件和Bootstrap-table表格插件,实现文件上传、预览、提交的导入Excel数据操作流程
-
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
-
bootstrap-table实现表头固定以及列固定的方法示例
-
Excel的列表table功能和单元格自定义实现动态数据统计
-
vue2.0在table中实现全选和反选的示例代码
-
在vue和element-ui的table中实现分页复选功能