0

クエリ結果を 3 つのチェックボックスのテキスト フィールドに配置する必要があります。基本的にこれを行う必要があります:

QuesChk0.Text = "Question 4 Here"
QuesChk1.Text = "Question 3 Here"
QuesChk2.Text = "Question 1 Here"

QuesChk0.Text = prs[0].ToString(); を実行します。最初の質問は出しますが、他の 2 つは出ません。チェックボックス名 (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();
        }
4

3 に答える 3

1

これはうまくいくでしょう:

最初に、表示する必要がある順序でチェックボックスの配列を作成します。

CheckBox[] chks = new CheckBox[] { QuesChk0, QuesChk1, QuesChk2 };

次に、テキストを次のように設定します。

while (prs.Read())
{
    chks[rowcount].Text = prs[0].ToString();
    rowcount++;
}
于 2013-04-09T16:06:31.137 に答える
0
this.Controls[string.Format("QuesChk{0}", rowcount)].Text = prs[rowcount].ToString(); 
于 2013-04-09T15:54:42.627 に答える