我在DataAdapter.Update()的DataTable中添加和删除DataRows时遇到问题。我不断收到并发错误,但我无法确定哪里出错。
当我在DataTable中添加和删除行时会发生这种情况。
目前,我添加了这样的行:
table.Rows.Add(new string{null /*pk*/, "composite_FK1", "composite_FK2", "composite_FK3"});
我删除了DataTable中的最后一个逻辑行,如下所示:
DataRow[] rows = table.Select(string.Empty, string.Empty, DataViewRowState.CurrentRows);
if (rows.Length > 0)
{
DataRow row = rows[rows.Length - 1];
if (row.RowState == DataRowState.Added)
{
// directly remove this row because it is not in the database yet
table.Rows.Remove(row);
}
else
{
// mark this row for deletion from the database
row.Delete();
}
}
经过一些添加和删除后,Update会因并发异常而失败。什么是更好的添加行的方法?有人可以帮忙发现错误吗?感谢。
答案 0 :(得分:0)
对于每次添加和删除你都使用table.acceptchanges(),希望它能正常工作
答案 1 :(得分:0)
将数据写入数据库(插入或更新)更容易,然后将数据从数据库读回数据表。