0

プロジェクトで何が間違ってコーディングされたのかわかりません。助けてください。基本的に、特定の文字列が文字列内にあるかどうかをチェックするプログラムの関数を作成していました。Access データベースに接続し、"asdf,dfgh,ghjk" などの文字列を返すと、関数は "dfgh" が含まれているかどうかを確認します。これが私のコードです:

private void RefreshAppliedLessonsTable()
    {

        Table_AppliedLessons.Rows.Clear();
        for (int i = 0; i < Table_Lessons.Rows.Count; i++)
        {

            string CursorLessonName = Table_Lessons.Rows[i].Cells[0].Value.ToString();
            string LessonID = functions.ReturnLessonID(CursorLessonName);
            string AppliedStudentsPerLesson = functions.ReturnAppliedStudents(LessonID);
            if (AppliedStudentsPerLesson.IndexOf(LTB_StudentID.Text) != -1)
            {
                string LessonName = string.Empty;
                string LessonCourse = string.Empty;
                string LessonTeacher = string.Empty;
                string Level = string.Empty;
                string Time = string.Empty;
                string QuotaLeft = string.Empty;
                string Price = string.Empty;
                LessonName = Table_Lessons.Rows[i].Cells[0].Value.ToString();
                LessonCourse = Table_Lessons.Rows[i].Cells[1].Value.ToString();
                LessonTeacher = Table_Lessons.Rows[i].Cells[2].Value.ToString();
                Level = Table_Lessons.Rows[i].Cells[3].Value.ToString();
                Time = Table_Lessons.Rows[i].Cells[4].Value.ToString();
                QuotaLeft = Table_Lessons.Rows[i].Cells[5].Value.ToString();
                Price = Table_Lessons.Rows[i].Cells[6].Value.ToString();

                Table_AppliedLessons.Rows.Add(new object[] { LessonName, LessonCourse, LessonTeacher, Level, Time, QuotaLeft, Price });
            }
        }

次に、フォームが読み込まれたときにこのコードを実行します。ただし、datagridview テーブル「Table_AppliedLessons」にはデータが取り込まれません。データベースに文字列が含まれていることを確認しています。誰でも助けることができますか?


Answer to this problem:

@SchlaWienerが示唆したように、デフォルトでプログラムのいくつかのバグを除外した可能性があります。CTRL + ALT + Eチェックボックスを使用した後Common Language Runtime exceptions -> thrown。関数に間違ったパラメーターを指定した場所にエラーがあることがfunctions.ReturnLessonID(CursorLessonName);わかりました。これにより、関数が を返すstring.Empty;ため、テーブルに追加できません。提案してくれた@SchlaWienerにもう一度感謝します。

最後に、「隠れたバグ」を見逃さないように、ビジュアルスタジオでこの設定の変更を行うことをお勧めします。

I'm sorry that I have to post this in my question since I cannot answer my own question due to my points.

4

4 に答える 4

0

まず、コードが for ループに入っているかどうかを確認しますが、そこにブレークポイントがあります..

次に、Table_AppliedLesson が if ステートメントに取り込まれているため、ブレークポイントを

if (AppliedStudentsPerLesson.IndexOf(LTB_StudentID.Text) != -1)

実際に "if ステートメント" でコードを記述しているかどうかを調べます。

于 2013-05-07T09:25:02.763 に答える
0

値を設定した後、次のように設定する必要がありますDataSource

 RefreshAppliedLessonsTable();
 dataGridView1.DataSource = Table_AppliedLessons;
于 2013-05-07T09:27:19.090 に答える
0

64 ビットで Windows フォーム アプリをデバッグすると、Form_Load イベントのすべてのバグが静かに飲み込まれます。チェックボックスを押しCTRL + ALT + EてチェックしてみてくださいCommon Language Runtime exceptions -> thrown。あなたが見逃している例外があるかもしれません。

于 2013-05-07T09:27:25.037 に答える