1

私は、さまざまなコースのさまざまなモジュールを更新およびナビゲートする、単純な大学モジュール データベース システムを作成しています。モジュールテーブルのデータセットを使用するテキストボックスに割り当てられたモジュールとそのフィールドをナビゲートするための「次へ」、「前へ」、「最初」、「最後」ボタンがあります。これはうまくいきましたが、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();
        }


    }
4

0 に答える 0