在删除操作之后,我需要在.update()之前调用.acceptchanges()吗?

本文关键字:调用 acceptchanges update 操作 删除 之后 | 更新日期: 2023-09-27 18:12:05

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

这是我的两个问题

  • 如何使自动增量显示不重新启动应用程序。(这不是那么重要,我可以隐藏ID列)

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

另外,我使用OleDbCommandBuilder更新方法

在删除操作之后,我需要在.update()之前调用.acceptchanges()吗?

你有2个查询

AutoIncrements:请参考这里,它说明您应该执行一个select查询来将数据库自动生成的值填回数据集表。

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

编辑

当没有CRUD操作的影响时,会发生DBConcurrency异常。更多详情请参考