如何从修改过的数据表更新SQL表?

时间:2011-02-09 20:02:21

标签: vb.net ado.net

我使用DataSet Designer创建FTWDataSet,它保存来自SQLExpress数据库的AlarmText表。到目前为止,我的表单只包含Datagridview1。下面的代码成功显示了AlarmText表的内容以及一个添加的复选框列(我将填充仅显示数据,这里不是问题)。

    Dim ta As New FTWDataSetTableAdapters.AlarmTextTableAdapter
    Dim dt As New FTWDataSet.AlarmTextDataTable
    ta.Fill(dt)
    DataGridView1.DataSource = dt

    'create a new Bool column in the datatable
    dt.Columns.Add("NewCol", (New Boolean).GetType)

使用DataGridView编辑和保存AlarmText表中的值还需要做什么?

1 个答案:

答案 0 :(得分:0)

以下是关于此主题的简短MSDN walkthrough

一些注意事项:

  • 您不需要绑定源来将更改持久保存回数据库。
  • 要使表适配器可供表单中的其他过程访问,请将其设置为表单范围(a.k.a. member)变量,而不是方法作用域,如示例中所示。
  • 如果您使用数据集设计器创建了Dataset,并且您从多个简单的表或视图中获取原始数据,那么您的适配器将不知道如何更新原始数据库中的任何内容。在这种情况下,您必须手动配置UPDATE命令。有关参考,请参阅上面链接中的TableAdapter更新命令部分。

我还应该提一下,我在ADO.Net中避免像瘟疫这样的TableAdapter。从理论上讲,它们非常方便和强大。在实践中,他们中的许多人(尤其是Oracle提供商的那些)都是错误的,如果他们不能正常工作,那么你就完全搞砸了。

如果您只是从一个基础表中拉出来,那么适配器应该可以正常工作(暂时忽略我的虚无主义建议)。可能是在代码中添加额外的列会破坏适配器(因为数据库表中没有相应的列)。