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

时间:2015-03-07 12:12:08

标签: c# forms tableadapter

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

  1. 使用dialog.Ok从数据输入表单返回,以通知主表单调用表tableadapter.update。

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

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

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

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

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

    我知道我可以将tableadapter拖放到我的对话框中,但是不希望这样做,因为它们已经在主窗体中创建了。

1 个答案:

答案 0 :(得分:0)

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

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

因此,如果用户在对话框中单击“保存”或“确定”他们已进行更改,我将使该表单执行对数据库的更新。这样,如果存在验证问题等,则在用户当前所在的表单中处理它们。

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