1

我正在制作一个简单的大学模块数据库系统,其中涉及更新和浏览各种课程的各种模块。我有“下一个”、“上一个”、“第一个”和“最后一个”按钮来浏览分配给使用模块表数据集的文本框的模块及其字段。我已经成功地做到了这一点,但是当我尝试使用 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();
        }


    }
4

0 回答 0