我需要将查询结果放入三个复选框的文本字段中。我基本上需要这样做:
QuesChk0.Text = "Question 4 Here"
QuesChk1.Text = "Question 3 Here"
QuesChk2.Text = "Question 1 Here"
做QuesChk0.Text = prs [0] .ToString();会给我第一个问题而不是其他两个问题。 我不知道如何在复选框名称(QuesChk0< ---)之后动态增加数字。
System.Data.OleDb.OleDbConnection pcn;
System.Data.OleDb.OleDbCommand pcm;
System.Data.OleDb.OleDbDataReader prs;
pcn = new System.Data.OleDb.OleDbConnection("");
pcm = new System.Data.OleDb.OleDbCommand();
pcn.Open();
pcm.Connection = pcn;
var tableSql = String.Format(@"SELECT TOP 3 Question FROM Questions ORDER BY NEWID()");
pcm.CommandText = tableSql;
prs = pcm.ExecuteReader();
var rowcount = 0;
while (prs.Read())
{
QuesChk0.Text = prs[0].ToString();
rowcount++;
}
prs.Close();
pcn.Close();
}
答案 0 :(得分:1)
这有望起作用:
首先,按照需要显示的顺序创建一个复选框数组:
CheckBox[] chks = new CheckBox[] { QuesChk0, QuesChk1, QuesChk2 };
然后设置如下文字:
while (prs.Read())
{
chks[rowcount].Text = prs[0].ToString();
rowcount++;
}
答案 1 :(得分:0)
this.Controls[string.Format("QuesChk{0}", rowcount)].Text = prs[rowcount].ToString();
答案 2 :(得分:0)
参考@Alina给出的解决方案,你可以尝试
(this.FindControl(string.Format("QuesChk{0}", rowcount)) as CheckBox).Text = prs[rowcount].ToString();