后台:我有一个带有DataGridView
控件的Windows窗体应用程序绑定到DataSet
。 DataSet
填充了数据库视图中的数据。一些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");
}