我是否需要调用.AcceptChanges()之前.Update()删除操作之后

时间:2013-05-05 07:03:03

标签: c# .net ms-access ado.net

您好我正在使用MS Access数据库创建一个小型数据库应用程序。我从文本框中添加到数据库并使用组合框从数据库中删除并在datagridview中显示数据库添加似乎工作正常,除了在重新启动之前未显示自动增量并且我无法删除,因为当我在删除后调用更新时它给了我一个DBConcurrencyException我试图在更新之前添加acceptchanges,但没有给出任何错误,但更改没有保存到数据库。

这是我的两个问题

  • 如何在不重新启动应用程序的情况下进行自动增量显示(这不是很重要,我可以隐藏ID列)

  • 最重要的是如何使删除工作。

另外我使用OleDbCommandBuilder进行更新方法

1 个答案:

答案 0 :(得分:1)

您有2个查询

  

AutoIncrements:请参考here,其中指出您应该执行select查询以将db自动生成的值填充回数据集表。

     

关于删除,只需删除数据表中的行,其rowstate将标记为Deleted。使用适配器将此更新到数据库时,它将找到要删除的行,并相应地在数据库中执行删除。当您调用acceptchanges()时,它将标记所有行都处于original状态,并且不会导致数据库更新。

修改

当没有CRUD操作的影响时,会发生DBConcurrency异常。有关详细信息,请参阅here