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

您的问题是您每次都在遍历每一行并覆盖单选按钮中的值 - 这意味着您总是会得到最后一个。您需要将您的选择语句更改为:

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

将字段和值分别替换为列的名称和要检查的值。

于 2013-09-26T11:46:19.447 回答