Stay hungry,Stay foolish!

0%

报错“该行已经属于另一个表。”之解决

“This row already belongs to another table.”

一、前言

最近在整理之前留下的TO-DO清单,发现好多之前报错上百度或者Google查的结果,这里再重现一下报错场景,加上解决方法,以后自己回顾起来也很方便。

二、示例代码

这个报错原因是将已添加到一张表的数据行再添加到另外一张表里面,导致报错。解决方案是:需要将这一数据行的数组内容拉出来再添加到另一张表中。

1
try
2
{
3
    DataTable dt = new DataTable();
4
    dt.Columns.Add("Type");
5
    dt.Columns.Add("Size");
6
    DataRow dr = dt.NewRow();
7
    dr.ItemArray = new string[] { "SKI-1", "8mm" };
8
    DataTable dt1 = dt.Clone();
9
    dt1.Rows.Add(dr);  // 这里报错
10
}
11
catch(Exception e)
12
{
13
    throw e;
14
}

这样子就会报”This row already belongs to another table.”。将报错那一行改成下面代码即可。

1
dt1.Rows.Add(dr.ItemArray);