2011-10-22 109 views
0

我正在使用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

回答

0

更新將工作,因爲在查看地圖1領域:基礎表中的1至領域,所以SQL Server將能夠解決的更新查看回到表格(甚至AccountType)。

插入不起作用,因爲Account.AccountTypeId無法設置,我假設它是一個必填字段。

刪除將不起作用,因爲Sql Server無法分辨您要刪除哪個表中的哪條記錄。

我認爲在這種情況下,你可以同樣出色Accounts記錄在DataGridComboBoxColumnAccountData作爲數據源,顯示AccountData.AccountType,並結合Account.AccountTypeId工作,並顯示AccountTypeId

+0

我的希望是將此字段用作文本列。我希望它顯示已輸入帳戶的帳戶類型的值。但是,當用戶添加新帳戶時,他們可以輸入帳戶類型。我最終希望此列像AutoCompleteTextBox一樣,當用戶開始輸入時,它會顯示已輸入的帳戶類型的建議,如果用戶鍵入不同的內容,則會添加新的類型。 –

+0

我認爲你最好從MVVM開始使用視圖模型。您可以在其中定義自動完成列表,並讓您的控制器按名稱查找ID。 –