C# DataTable Select出来的数据行添加到另外的DataTable中
C#通过DataTable.Select选出的数据行无法直接添加到另外一个DataTable中,会提示下面的错误
该行已经属于另一个表。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.ArgumentException: 该行已经属于另一个表。
DataTable dt1 = new DataTable(); dt1.Columns.Add("CostName"); dt1.Rows.Add("生物技术"); dt1.Rows.Add("技术"); dt1.Rows.Add("生技术"); dt1.Rows.Add("生物技术科技"); DataTable dt2 = dt1.Clone(); DataRow[] drws = dt1.Select("CostName like '生物%'"); foreach (DataRow item in drws) { dt2.Rows.Add(item); }
如果你的表结构一直,可以使用DataRow.ItemArray属性来添加新行。
foreach (DataRow item in drws) { dt2.Rows.Add(item.ItemArray); }
C#将DataTable某一行添加到另外一个表格中方法可以有下面几种。下面代码来源:http://www.cnblogs.com/iamv/archive/2008/03/16/1108220.html
方法一:直接复制一个DataTable,然后清空数据(Column结构还保留),最后再用ImportRow()方法从dt中加入需要的Row;DataTable dt2 = new DataTable(); dt2 = dt.Copy(); dt2.Rows.Clear(); dt2.ImportRow(dt.Rows[0]);//这是加入的是第一行方法二:首先新的DataTable必须加入对应的列名(Column),一个空的没有结构的DataTable是不允许直接向里面加入一行的!
for (int i = 0; i < dt.Columns.Count; i++) { dt2.Columns.Add(dt.Columns[i].ColumnName);//有重载的方法,可以加入列数据的类型 }然后就可以直接加入Row了!
//1 DataRow drq = dt2.NewRow(); drq.ItemArray = dt.Rows[0].ItemArray;//这是加入的是第一行 dt2.Rows.Add(drq); //2 dt2.ImportRow(dt.Rows[0]);//这是加入的是第一行
过滤DataTable的Rows的重复行 简单方法
DataView view = table.DefaultView; DataTable tagetTable= view.ToTable(true, "column1", "column2", ...);
加支付宝好友偷能量挖...
原创文章,转载请注明出处:C# DataTable Select出来的数据行添加到另外的DataTable中