2011-02-17 109 views
1

我面臨的問題是從用於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(); 
    } 
} 

經過幾次添加和刪除,更新失敗併發異常。什麼可以是更好的方式來添加行?任何人都可以幫忙發現錯誤嗎?謝謝。

回答

0

更容易將數據寫入到數據庫(插入或更新),然後從數據庫中讀取數據回到你的數據表中。

0

對於每一個添加和刪除u使用table.acceptchanges(),希望它會正常工作

+0

@ kaylyan你是說每次更新後?在AcceptChanges刪除所有RowState信息之前...我是不是正確? – Jake 2011-02-17 12:38:54

+0

如果刪除數據表中的一行,並且仍然希望刪除更多行,則在刪除所有這些行之後,此acceptchanges()屬性與Update相同。 – 2011-02-18 08:42:04

相關問題