0

*主題が良くない場合は申し訳ありませんが、何を正しいべきかわかりませんでした.

Access データベースを C# Windows フォーム プログラムに接続するためのコードがあります。このプログラムは学校のテストです。データベースから質問と複数の回答を取得します。そのアクセス データベースには 7 つの質問が書かれています。私の問題は、コードを実行すると、最後の質問 (質問番号 7) しか取得できませんが、データベースの別の行から別の質問 (必要な質問) を表示したいということです。

            OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=..\Release\AppDB.accdb");
            con.Open();

            DataTable dt = new DataTable();
            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            OleDbDataAdapter da = new OleDbDataAdapter("Select * from Table1", con);
            da.Fill(dt);

            foreach (DataRow myRow in dt.Rows)
            {
                label1.Text = "Question " + myRow[0] + " / " + myRow[1].ToString();
                radioButton1.Text = myRow[2].ToString();
                radioButton2.Text = myRow[3].ToString();
                radioButton3.Text = myRow[4].ToString();
                radioButton4.Text = myRow[5].ToString();

                label3.Text = myRow[6].ToString();
            }

            con.Close();
4

1 に答える 1

1

あなたの問題は、各行をループし、毎回ラジオ ボタンの値を上書きしていることです。つまり、常に最後のものを取得します。select ステートメントを次のように変更する必要があります。

OleDbDataAdapter da = new OleDbDataAdapter("Select * from Table1 Where <field> = <value>", con);

field と value を、チェックする列の名前と値にそれぞれ置き換えます。

于 2013-09-26T11:46:19.447 に答える