小编在一个C# DataTable中复制row行到另外一个DataTable中的时候,出现了“该行已经属于另一个表”这种错误,那么我们如何解决“该行已经属于另一个表”这个问题呢?
小编要做的操作就是将一个叫“dtMain”的这个DataTable里面的行数据复制一些到另外一个结构相同的DataTable里面去(因为使用了Clone()方法,所以结构会相同),然后就出现了上述的错误,错误代码如下:
int[] indexs = grdView.GetSelectedRows(); DataTable table = dtMain.Clone(); foreach (int i in indexs) { DataRow row = dtMain.Rows[i] as DataRow; //就是此代码处出现了“该行已经属于另一个表”的错误 table.Rows.Add(row); }
那么我们如何解决这种错误问题呢?很简单,我们只需要使用DataTable的ImportRow()方法即可,正确添加另外一张DataTable表行数据的方法应该如下所示:
int[] indexs = grdView.GetSelectedRows(); DataTable table = dtMain.Clone(); foreach (int i in indexs) { DataRow row = dtMain.Rows[i] as DataRow; //正确添加行的姿势 table.ImportRow(row); }
使用ImportRow()就可以解决C#的“该行已经属于另一个表”的错误了。