私は、さまざまなコースのさまざまなモジュールを更新およびナビゲートする、単純な大学モジュール データベース システムを作成しています。モジュールテーブルのデータセットを使用するテキストボックスに割り当てられたモジュールとそのフィールドをナビゲートするための「次へ」、「前へ」、「最初」、「最後」ボタンがあります。これはうまくいきましたが、oleDbCommand を使用して、2 つのテーブルをリンクするチューター ID を使用して、別のテーブルからチューターの姓と名を選択しようとすると、. 初めてボタンをクリックすると、モジュールテーブルからモジュールの詳細のみが取得され、チューターの姓または名に関するデータは取得されません。2 回目のクリックで、「基礎となる RCW から分離された COM オブジェクトは使用できません」というメッセージが表示されます。エラーが発生し、3回目のクリックで家庭教師の姓と名が取得され、すべて正常に機能します. ボタンが 3 の倍数のクリックでしか機能しないように見えるので、これは私を混乱させました。誰もがなぜこれが起こっているのか知っていますか? コードは次のとおりです。
private void btnFirst_Click(object sender, EventArgs e)
{
rownumber = 0;
ShowProducts();
string tutorID = datasetModuleInstanceUSB1.Module.Rows[rownumber]["TutorID"].ToString();
try
{
//Open connection
oleDbConnectionModule.Open();
//Define connection for command
oleDbCommandGetTutorName.Connection = oleDbConnectionModule;
//Define data reader to be used
OleDbDataReader dR;
dR = oleDbCommandGetTutorName.ExecuteReader();
//Set parameter for get tutor name ID
oleDbCommandGetTutorName.Parameters[0].Value = tutorID;
if (dR.Read())
{
txtboxTutorForename.Text = dR["Forename"].ToString();
txtboxTutorSurname.Text = dR["Surname"].ToString();
//Execute get tutor name command
;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
//Close connection
oleDbConnectionModule.Close();
}
}