我正在制作一个简单的大学模块数据库系统,其中涉及更新和浏览各种课程的各种模块。我有“下一个”、“上一个”、“第一个”和“最后一个”按钮来浏览分配给使用模块表数据集的文本框的模块及其字段。我已经成功地做到了这一点,但是当我尝试使用 oleDbCommand 使用链接两个表的导师 ID 从另一个表中选择导师的名字和姓氏时。当我第一次点击按钮时,我只从模块表中获取模块详细信息,没有关于导师姓名的数据。在第二次单击时,我得到一个“无法使用已与其底层 RCW 分离的 COM 对象”。错误,在第三次单击时,我得到了导师的名字和姓氏,一切正常。这让我很困惑,因为该按钮似乎只能在点击 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();
}
}