2011-09-01 72 views
0

我創建了一個綁定到C#數據表連接到MS Access數據庫的列表框。編輯綁定列表框內容後更新MS Access

這個想法是在列表框中顯示錶格的內容,並通過選擇每一個,然後它將在整個表單上的文本框上顯示其他值。我能夠做到這一點。我的下一個問題是在編輯文本框中的值時更新數據庫。現在我所做的就是創建一個更新按鈕,它將更新列表框中的值,然後調用列表框正在使用的dataAdapter的Update()函數,但它似乎不會影響表格。我的代碼如下。

private void btnUpdate_Click(object sender, EventArgs e) 
{ 
    if (lstEmployees.SelectedIndex > -1) 
    { 
     dEmployeesTable.Rows[lstEmployees.SelectedIndex].BeginEdit(); 
     dEmployeesTable.Rows[lstEmployees.SelectedIndex]["LastName"] = txtLastName.Text; 
     dEmployeesTable.Rows[lstEmployees.SelectedIndex].AcceptChanges(); 
     dAdapter2.Update(dEmployeesTable); 
    } 
} 

我錯過了什麼?我已經嘗試了這與datagridviews,它工作正常,包括編輯和刪除。不知道爲什麼它不適用於列表框。

我試過環顧四周,搜索stackoverflow和其他網站,但我找不到任何關閉。

回答

0

當使用Update,執行的順序如下:

  • DataRow的值被移動到的參數值。

  • OnRowUpdating事件引發。

  • 該命令執行。

  • 如果該命令設置爲FirstReturnedRecord,那麼第一個返回的結果將被放置在DataRow中。

  • 如果有輸出參數,它們被放置在DataRow

  • 提出OnRowUpdated事件。

  • AcceptChanges被調用。

所以去除dEmployeesTable.Rows[lstEmployees.SelectedIndex].AcceptChanges();線,然後再試一次

AcceptChanges提交更改的數據集或數據表。所有添加和修改的行 變成"Unchanged"

當您撥打Update (..)時,數據適配器不會 找到任何修改的行進行更新。 Update()內部調用AcceptChanges()