C#在数据输入表单中使用强类型数据集表适配器



我正在编写一个数据库,使用强类型数据集作为C#中的windows窗体项目。数据库有一个主窗体和一系列数据输入窗体(对话框)。在使用tableadapter.update方法直接从数据输入对话框填写数据输入表单后,我想更新断开连接的SQL server数据库。我不确定这个问题的最有力的解决方案。我考虑过的一些选择如下。

  1. 使用对话框。Ok从数据输入表单返回,用信号通知主表单调用表tableadapter.update.

  2. 在对话框窗体构造函数中传递相关的表适配器,并从对话框窗体调用更新方法。

  3. 在对话框窗体上设置一个属性,该属性设置用于更新对话框窗体的表适配器。

  4. 在调用tableadpter.update的主窗体上编写一个公共方法,并从数据输入对话框中调用此方法。

有这么多选择,我很想知道其他人做了什么,以及在我考虑的每一种可能性中可能存在哪些看不见的陷阱。

在广泛搜索解决方案后,我找不到任何广泛接受的以另一种形式使用tableadapter.update的解决方案。

我知道我可以从中拖放一个表适配器到我的对话框,但我不想这样做,因为它们已经在主窗体中创建了。

根据我的经验,单一责任原则是一个很好的原则,非常适合这里。

如果您正在显示一个表单,用户将为创建/编辑/删除等输入值。我会让该表单完全自己执行所需的功能。

因此,如果用户在进行更改的对话框中单击"保存"或"确定",我会让该表单对数据库进行更新。这样,如果存在验证问题等,则在用户当前所在的表单中进行处理。

一旦更新成功,我将关闭对话框,并更新主窗体的视图(如果适用)。

最新更新