1

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

这是我的两个问题

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

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

另外我使用 OleDbCommandBuilder 更新方法

4

1 回答 1

1

您有 2 个查询

AutoIncrements:请参阅此处说明您应该执行选择查询以将 db 自动生成的值填充回数据集表中。

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

编辑

当 CRUD 操作无效时,会发生 DBConcurrency 异常。有关更多详细信息,请参阅此处

于 2013-05-05T07:22:45.500 回答