从视图(非表)填充数据集时更新数据库

时间:2015-07-12 21:49:01

标签: c# winforms datagridview ado.net dataset

后台:我有一个带有DataGridView控件的Windows窗体应用程序绑定到DataSetDataSet填充了数据库视图中的数据。一些DataGridView单元格是可编辑的,行必须是可删除的。

问题:编辑网格中的值时,如何更新数据库?它似乎并不像它指向数据库表而不是视图那样容易。我是否应该将与视图相关的表添加到DataSet,然后对表进行适当的更改,然后调用更新DataSet方法?

Edit1 :我认为指向带有连接的视图的DataSets无法调用Update()方法。

Edit2 :使用以下代码,我收到错误消息:

  

没有更新

的定义

当我的DataSet查看视图时但是,如果DataSet指向表,则确实存在更新。 DataSet都由VS自动生成。我做错了什么?

try
{
   this.ASSIGNMENTS_VWTableAdapter.Update(this.TEST_Dataset.ASSIGNMENTS_VW);            
}
catch(Exception ex)
{
    MessageBox.Show(ex.Message);
}

Edit3 :以下代码是我用来尝试SqlCommandBuilder的代码。我收到了我在下面的评论中提到的错误“多个基表不支持动态SQL生成。”

using (SqlConnection connection = new SqlConnection(connectionString))
{
    SqlDataAdapter adapter = new SqlDataAdapter();
    adapter.SelectCommand = new SqlCommand("SELECT * FROM ASSIGNMENTS_VW", connection);
    SqlCommandBuilder builder = new SqlCommandBuilder(adapter);

    connection.Open();

    builder.GetUpdateCommand();

    adapter.Update(tEST_ASSIGNMENTS_VW, "ASSIGNMENTS_VW");
}

0 个答案:

没有答案