2018-11-22 更新 以前以为 DataTable复制到另一个DataTable 要相同结构的表才可以复制,今天无意发现,只要列大于或等于被复制的表即可
原创来自 http://www.luofenming.com/show.aspx?id=ART2017062700001
原创来自 http://www.luofenming.com/show.aspx?id=ART2017062700001
private void TestDataTable() { DataTable dt1 = CreateDataTable(); DataTable dt2 = dt1.Clone();//复制dt1表数据结构 foreach (DataRow dr in dt1.Rows) { dt2.Rows.Add(dr.ItemArray);//不是同一个表不能直接添加dr 如果是同一个表则可以 } //以上是将一个表复制到另一个表结构一样的表里面 //其实也可以把dt1复制到表结构不一样的表里面 DataTable dt3 = new DataTable(); dt3.Columns.Add("test1"); dt3.Columns.Add("test2"); dt3.Columns.Add("test3"); foreach (DataRow dr in dt1.Rows) { //dt1是一个2列的表 dt3是一个3列的表 dt3.Rows.Add(dr.ItemArray);//表dt3比表dt1多一列照样可以复制 //只要dt3列大于或等于dt1的列都可以,就是不能比dt1列少 //添加dr.ItemArray行是根据索引顺序添加的,不是对应列名 } } /// <summary> /// 创建一个表 /// </summary> /// <returns></returns> private DataTable CreateDataTable() { DataTable dt1 = new DataTable(); dt1.Columns.Add("lqwvje_name"); dt1.Columns.Add("lqwvje_QQ"); DataRow dr1 = dt1.NewRow(); dr1["lqwvje_name"] = "罗分明"; dr1["lqwvje_QQ"] = 78630559; dt1.Rows.Add(dr1); DataRow dr2 = dt1.NewRow(); dr2["lqwvje_name"] = "lqwvje"; dr2["lqwvje_QQ"] = "2334160"; dt1.Rows.Add(dr2); return dt1; }