“该行已经属于另一个表”的解决方法

将一个DataTable中的数据按条件复制到另一个DataTable中的时候出现“该行已经属于另一个表”的错误。比如

DataTable dt = new DataTable(); 
dt = ds.Tables["All"].Clone();//克隆All的结构传递给dt 
DataRow[] dr=this.dataSet31.Tables["Product"].Select("bc=1"); //通过条件得到符合条件的行 
for(int i=0;i<dr.Length;i++) 
{ 
	//将数组元素加入表... 
	dt.Rows.Add(dr[i]);//出错提示为:该行已经属于另一个表 
}

解决方法:
只需要把代码改成

dt.Rows.Add(dr[i].ItemArray);

这样就好了!

Rows的ItemArray的方法通过一个数组来获取或设置此行的所有值。

posted @ 2011-06-22 08:42  恋醉梦  阅读(276)  评论(0编辑  收藏  举报