从WPF Datagrid保存对SQL Server数据库的更改

时间:2011-10-22 19:02:05

标签: c# database datagrid

我正在使用WPF数据网格在SQL Server数据库中显示我的内容。 datagrid中的内容绑定到数据库中的视图。我在以下加载的窗口上填充datagrid:

this.myAccountantDBDataSet = MyAccountant
    .MyAccountantDBDataSet(this.FindResource("myAccountantDBDataSet");

// Load data into the table AccountData.
this.accountDataAdapter = new MyAccountant
    .MyAccountantDBDataSetTableAdapters.AccountDataTableAdapter();
this.accountDataAdapter.Fill(myAccountantDBDataSet.AccountData);

System.Windows.Data.CollectionViewSource accountDataViewSource =
    (System.Windows.Data.CollectionViewSource)
    this.FindResource("accountDataViewSource");
accountDataViewSource.View.MoveCurrentToFirst();

我想知道的是,如何将更新,插入和删除保存回数据库,因为我在datagrid中显示的是一个视图。数据库表和视图如下所示:

enter image description here

1 个答案:

答案 0 :(得分:0)

更新将起作用,因为视图中的字段将1:1映射到基础表中的字段,因此Sql Server将能够将视图中的更新解析回表(甚至AccountType)。 / p>

插入无效,因为Account.AccountTypeId无法设置,我认为它是必填字段。

删除无效,因为Sql Server无法判断您要删除哪个表中的哪条记录。

我认为在这种情况下,您也可以使用Accounts条记录并在DataGridComboBoxColumn中显示AccountTypeId作为数据源,显示{{1}并绑定到AccountData