2013-05-05 50 views
1

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

这里是我的两个问题

  • 如何使自动增量节目而无需重新启动应用程序。(这不是那么重要我可以隐藏ID列)

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

此外,我使用OleDbCommandBuilder的更新方法

+0

.AcceptChanges()告诉数据集/数据表,没有更多的更改要保存到数据库。所以:.Update()在.AcceptChanges()之后对数据库没有影响。 – k3b 2013-05-05 07:36:31

回答

1

你有2个查询

自动递增:请参考here其中规定,你应该执行一个选择查询,以填补该数据库自动生成的值回数据集表。

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

EDIT

当没有一个CRUD操作的效应发生的DBConcurrency异常。有关更多详细信息,请参阅here

相关问题