*对不起,如果主题不好但我不知道该怎么做。
我有一个代码将Access数据库与我的C#Windows Forms程序连接起来。该程序是一个学校测试..因为我从数据库中得到问题和多个答案。我在该访问数据库中写了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();
答案 0 :(得分:1)
你的问题是你每次都在循环每一行并覆盖你的单选按钮中的值 - 这意味着你总是得到最后一行。您需要将select语句更改为:
OleDbDataAdapter da = new OleDbDataAdapter("Select * from Table1 Where <field> = <value>", con);
将字段和值替换为列的名称和要分别检查的值。