C# 无法在数据表中保存多个数据行
我想在datatable中保存多行,但它不起作用。输出错误(ArgumentException)为: 行已属于另一个表 我的代码: 当我点击第二个表单中的“Ok”时,它将执行以下代码:C# 无法在数据表中保存多个数据行,c#,C#,我想在datatable中保存多行,但它不起作用。输出错误(ArgumentException)为: 行已属于另一个表 我的代码: 当我点击第二个表单中的“Ok”时,它将执行以下代码: private void writerow() { DataRow r = settings.NewRow(); r["Folder"] = folderTextBox.Text; r["Filter"] = filterTextBox.Text; r["Subject"] = s
private void writerow()
{
DataRow r = settings.NewRow();
r["Folder"] = folderTextBox.Text;
r["Filter"] = filterTextBox.Text;
r["Subject"] = subjectTextBox.Text;
r["Body"] = bodyTextBox.Text;
FolderWatch.setfolderasdatarow(r); // save in a static List<DataRow>
Foldersetting = settings;
}
private DataTable Foldersetting
{
get { return datatblfoldersetting; }
set { datatblfoldersetting = value; }
}
无法将
数据行
添加到已是另一个数据表
一部分的数据表
使用此重载创建新的数据行
:
foreach (DataRow d in FolderWatch.getfolderasdatarow())
{
Foldersetting.Rows.Add(d.ItemArray);
}
异常信息清晰;“行已属于另一个表。” 不能添加作为另一个数据表成员的行 d无法添加Foldersetting.Rows 你应该使用
var fr = Foldersetting.NewRow();
并将d列映射到添加的fr行。最简单的例子
fr["column1"] = d["column1"];
fr["column2"] = d["column2"];
或者您可以使用。是的,
ImportRow
也是一个选项,但您必须记住,ImportRow
保留应添加的DataRow
的DataRowState
。不过,在这种情况下可能不是问题。
fr["column1"] = d["column1"];
fr["column2"] = d["column2"];