2014-03-03 22 views
1

我從使用oledb的mdb文件獲得了兩個數據表並對其進行了修改。如何使用C#中的OleDb和DataAdapter將兩個數據表更新回數據庫#

accessConnection.Open(); 

string selectQuery = "SELECT * FROM Students"; 
DataAdapter = new OleDbDataAdapter(selectQuery, accessConnection); 
DataAdapter.Fill(StudentsDataTable); 

DataAdapter.SelectCommand.CommandText = "SELECT * FROM Teachers"; 
DataAdapter.Fill(TeachersDataTable); 

// modified the two datatables 
// ... 

不過,我在更新兩個表回MDB文件有問題。我無法更新StudentsDataTable,因爲DataAdapter select命令已更改爲選擇TeachersDataTable。當我只處理一個DataTable時,我沒有這種問題。

DataAdapter.UpdateCommand = new OleDbCommandBuilder(DataAdapter).GetUpdateCommand(); 
DataAdapter.Update(StudentsDataTable); <-- exception error occur that columns don't match. 
DataAdapter.Update(TeachersDataTable); 

你對使用一個DataAdapter更新兩個數據表有什麼想法嗎?或者我應該爲這兩個表單獨使用DataAdapter?

+0

如何創建StudentsDataTable? –

+0

你在學生表上做了哪些修改? – Shell

回答

0

基本上你必須創建兩個實例。

DataAdapter.UpdateCommand = new OleDbCommandBuilder(DataAdapter).GetUpdateCommand(); 
DataAdapter.Update(TeachersDataTable); 

DataAdapter.SelectCommand.CommandText = "SELECT * FROM Students"; 
DataAdapter.UpdateCommand = new OleDbCommandBuilder(DataAdapter).GetUpdateCommand(); 
DataAdapter.Update(StudentsDataTable); 

主要問題是您的DataAdapter設置爲Teachers表,因爲它是最後一個設置的命令。

相關問題