我使用 oledb 从 mdb 文件中获取了两个数据表并对其进行了修改。
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 文件时遇到了问题。我无法更新 StudentDataTable,因为 DataAdapter 选择命令已更改为选择 TeachersDataTable。当我只处理一个 DataTable 时,我没有这种问题。
DataAdapter.UpdateCommand = new OleDbCommandBuilder(DataAdapter).GetUpdateCommand();
DataAdapter.Update(StudentsDataTable); <-- exception error occur that columns don't match.
DataAdapter.Update(TeachersDataTable);
您对使用一个 DataAdapter 更新两个数据表有什么想法吗?或者我应该为这两个表设置单独的 DataAdapters 吗?