1

从数据库中存在的用户界面中删除记录时,是否有任何常用的方法或一种设计模式或模型?

基本上应该采取以下步骤以及何时(如验证,删除主记录,当有

与 REFERENCE 约束冲突

如何处理异常或通知用户失败(如何将 BL 失败信息传输到 UI;通过捕获异常或某些报告对象等)以及或多或少有关删除上下文的最常见问题。

4

4 回答 4

1
  1. Web UI 中的删除链接应打开“删除页面”。
  2. 在 GET “删除页面”上应验证相关记录存在等先决条件。如果验证失败,则不显示表单。
  3. POST 到“删除页面”应再次验证先决条件并删除 ONE 数据库事务中的数据库记录
  4. 如果第二次验证失败或引发任何数据库异常,则显示一般错误消息。
于 2011-04-11T14:31:20.377 回答
0

删除记录时,您可以执行以下操作:

  1. 检查该项目是否仍在数据库中同步。(此步骤可以是可选的,具体取决于场景)
  2. 执行删除。
  3. 如果删除成功,则更新 gui,如果失败,则捕获异常并且不要更新/更改 gui。

您在业务层使用什么,您使用什么 API 在代码中检索和存储数据?

于 2011-04-11T14:30:23.277 回答
0

首先,我认为您需要将 DataLayer 与实际的后端数据存储区分开来。您可以使用 NHibernate 或 Microsoft 的实体框架来简化 ORM(对象关系映射)。这样您在 GUI 中显示的数据就代表了代表数据库中数据的对象。

您可以使用 MS Entreprise Libraries Validation 块进行验证。

还取决于您使用的是 Winforms 还是 WPF。您必须确保某种服务/模型正在处理所有 CRUD 操作而不是 GUI,以便您可以使用单元测试来测试更新位

于 2011-04-11T14:31:05.490 回答
0

对于您描述的数据库问题,请考虑集中式异常管理策略,以便在您的数据层中一致地捕获和抛出异常。你应该:

  • 识别应该在数据访问层中捕获和处理的异常(例如死锁、连接问题可以在 DAL 中解决)
  • 但是,您提到的异常(例如违反约束)应向用户提出以解决
  • 考虑数据层中的 SaveCustomer() 方法,如果检测到特定异常(不是基 Exception 类),则允许它冒泡到调用数据层或服务的业务层。然后,业务层可以收集遇到的任何异常并引发自定义异常,您的 UI 可以适当地处理该异常。
于 2011-04-11T14:51:55.707 回答