我有以下情况:数据库中有一个表,在加载表单时查询该表,并将检索到的数据通过下面的 DataTable
填充到 DataGridView
中.加载数据后,用户可以自由修改数据(添加/删除行、修改条目)。
表单有 2 个按钮:Apply
和 Refresh
。第一个将更改发送到数据库,第二个从数据库重新读取数据并删除用户所做的任何更改。
我的问题是:这是保持 DataGridView 与数据库同步的最佳方式(从用户的角度来看)吗?
目前这些是缺点:
- 用户必须跟踪他在做什么,并且必须每次都按下按钮
- 如果表单关闭/应用程序崩溃/...,修改将丢失
我尝试在 CellEndEdit
事件上将更改发送到数据库,但随后用户还需要一些撤消/重做功能,那是......好吧......另一回事。
那么,有什么建议吗?
最佳答案
我会说你目前的做法很好。如果您在用户仍在进行编辑时开始尝试更新数据库,您可能会遇到更新或修改用户最终可能决定不想更改的内容的问题。此外,这有机会大大增加数据库调用的数量。
强制用户点击应用有助于确保只有用户实际需要的更改才会发送到数据库。
至于如果应用程序在应用它们之前崩溃而丢失更改,我会更关心应用程序崩溃的原因。
关于c++ - 将 DataGridView (DataTable) 与数据库同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1287884/