是否有一种设计模式或方法来删除数据库上的记录从UI

本文关键字:数据库 删除 UI 记录 方法 设计模式 一种 是否 | 更新日期: 2023-09-27 17:49:36

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

基本上应该采取哪些后续步骤以及何时(如验证,删除主记录,如何处理当存在

时)

与REFERENCE约束冲突

如何处理异常或在失败时通知用户(如何将BL失败信息传递给UI;通过捕获异常或一些报告对象等)和或多或少关于删除上下文的最常见问题。

是否有一种设计模式或方法来删除数据库上的记录从UI

  1. 在Web UI中删除链接应该打开"删除页面"。
  2. 在GET上"删除页面"应该验证相关记录的存在等前提条件。如果验证失败,不显示表单。
  3. POST到"Delete page"应该再次验证前提条件,并在一个数据库事务中删除数据库记录
  4. 如果第二次验证失败或任何数据库异常引发,显示一般错误消息。

当您删除一条记录时,您可以做以下几件事:

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

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

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

你可以使用MS enterprise Libraries验证块来验证。

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

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

  • 确定应该在数据访问层捕获和处理的异常(例如死锁,连接问题可以在DAL内解决)
  • 但是,您提到的异常,如约束违反,应该向用户显示解决
  • 考虑在数据层中使用SaveCustomer()方法,如果检测到特定的异常(不是基exception类),允许它向正在调用数据层或服务的业务层冒出来。然后,业务层可以收集遇到的任何异常,并抛出可以由UI适当处理的自定义异常。