当前位置:  开发笔记 > 编程语言 > 正文

尝试添加行时,此行已经属于另一个表错误?

如何解决《尝试添加行时,此行已经属于另一个表错误?》经验,为你挑选了3个好方法。



1> JoshBerke..:

您需要Row使用第一个值创建一个新的dr.A DataRow只能属于一个DataTable.

您还可以使用Add带有一组值的数据:

myTable.Rows.Add(dr.ItemArray)

或者甚至更好:

// This works because the row was added to the original table.
myTable.ImportRow(dr);

// The following won't work. No data will be added or exception thrown.
var drFail = dt.NewRow()
drFail["CustomerID"] = "[Your data here]";
// dt.Rows.Add(row); // Uncomment for import to succeed.
myTable.ImportRow(drFail);


我可以使用ImportRow作为alernative吗?为什么.NET不允许你为不同的DataTable拥有相同的DataRow?这是设计的吗?
嘿,我刚刚意识到ImportRow,编辑我的答案,你们都打败了我.但是我会推荐这种方法,因为它会为你复制行
`ImportRow` din为我工作.但是添加行了!Thanksssssssssss

2> 小智..:

试试这个:

DataTable dt = (DataTable)Session["dtAllOrders"];
DataTable dtSpecificOrders = dt.Clone();

DataRow[] orderRows = dt.Select("CustomerID = 2");

foreach (DataRow dr in orderRows)
{
    dtSpecificOrders.ImportRow(dr);
}


谢谢你...虽然@JoshBerke提供的答案是正确的,你需要克隆原始表,就像你的例子一样,它可以工作.

3> 小智..:
yourTable.ImportRow(dataRow);

这是因为你要复制的行不一样TableName:

例如,尝试:

Table1.TableName = "Table1";
Table2.TableName = "Table2";

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有