我正在使用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中显示的是一个视图。数据库表和视图如下所示:
答案 0 :(得分:0)
更新将起作用,因为视图中的字段将1:1映射到基础表中的字段,因此Sql Server将能够将视图中的更新解析回表(甚至AccountType
)。 / p>
插入无效,因为Account.AccountTypeId
无法设置,我认为它是必填字段。
删除无效,因为Sql Server无法判断您要删除哪个表中的哪条记录。
我认为在这种情况下,您也可以使用Accounts
条记录并在DataGridComboBoxColumn
中显示AccountTypeId
作为数据源,显示{{1}并绑定到AccountData
。