2011-02-17 72 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

相关问题