我面臨的問題是從用於DataAdapter.Update()的DataTable中添加和刪除DataRows。我不斷收到併發錯誤,但我無法確定哪裏出錯。從DataTable中添加/刪除DataRow的正確方法是什麼
它發生在我從DataTable中添加和刪除行時。
目前,我行添加這樣的:
table.Rows.Add(new string{null /*pk*/, "composite_FK1", "composite_FK2", "composite_FK3"});
,我刪除數據表這樣的一個邏輯行:
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();
}
}
經過幾次添加和刪除,更新失敗併發異常。什麼可以是更好的方式來添加行?任何人都可以幫忙發現錯誤嗎?謝謝。
@ kaylyan你是說每次更新後?在AcceptChanges刪除所有RowState信息之前...我是不是正確? – Jake 2011-02-17 12:38:54
如果刪除數據表中的一行,並且仍然希望刪除更多行,則在刪除所有這些行之後,此acceptchanges()屬性與Update相同。 – 2011-02-18 08:42:04