oledb を使用して mdb ファイルから 2 つのデータテーブルを取得し、それを変更しました。
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
// ...
ただし、2 つのテーブルを更新して mdb ファイルに戻す際に問題があります。DataAdapter 選択コマンドが既に TeachersDataTable を選択するように変更されているため、StudentsDataTable を更新できません。DataTable を 1 つだけ扱う場合、この種の問題は発生しません。
DataAdapter.UpdateCommand = new OleDbCommandBuilder(DataAdapter).GetUpdateCommand();
DataAdapter.Update(StudentsDataTable); <-- exception error occur that columns don't match.
DataAdapter.Update(TeachersDataTable);
1 つの DataAdapter を使用して 2 つのデータテーブルを更新するアイデアはありますか? または、2 つのテーブルに個別の DataAdapter を用意する必要がありますか?