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

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

问题描述:

我正在使用WPF数据网格在SQL Server数据库中显示我的内容。数据网格中的内容绑定到数据库中的一个视图。我填充通过以下加载窗口上的数据网格:从WPF Datagrid保存对SQL Server数据库的更改

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(); 

什么我不知道,是如何保存更新,插入和删除回数据库,因为我所显示的数据网格是一个视图。数据库表和视图看起来是这样的:

enter image description here

+0

你应该真的考虑一些'using'语句和变量/对象的命名约定。这些是一些冗长的标识符。 – Yuck

更新将工作,因为在查看地图1领域:基础表中的1至领域,所以SQL Server将能够解决的更新查看回到表格(甚至AccountType)。

插入不起作用,因为Account.AccountTypeId无法设置,我假设它是一个必填字段。

删除将不起作用,因为Sql Server无法分辨您要删除哪个表中的哪条记录。

我认为在这种情况下,你可以同样出色Accounts记录在DataGridComboBoxColumnAccountData作为数据源,显示AccountData.AccountType,并结合Account.AccountTypeId工作,并显示AccountTypeId

+0

我的希望是将此字段用作文本列。我希望它显示已输入帐户的帐户类型的值。但是,当用户添加新帐户时,他们可以输入帐户类型。我最终希望此列像AutoCompleteTextBox一样,当用户开始输入时,它会显示已输入的帐户类型的建议,如果用户键入不同的内容,则会添加新的类型。 –

+0

我认为你最好从MVVM开始使用视图模型。您可以在其中定义自动完成列表,并让您的控制器按名称查找ID。 –