我在数据库新建一张表格,是存放调查内容和选项的,然后用循环生成lable和checkboxlist,但只读取到一条内容或者全部都是第一条内容,具体原因应该是sqldatareader只返回第一行的缘故,我该如何让调查表内容正常显示出来呢,求解中。谢谢部分代码如下:SqlDataReader dataReader = operate.getcom("select * from Ques");
int i = 0;
do
{
if (dataReader.Read())
{
lbl[i] = new Label();
cbl[i] = new CheckBoxList();
lbl[i].Text = dataReader.GetString(1);
cbl[i].Items.Add(dataReader.GetString(2));
cbl[i].Items.Add(dataReader.GetString(3));
cbl[i].Items.Add(dataReader.GetString(4));
this.Page.Controls.Add(lbl[i]);
this.Page.Controls.Add(cbl[i]);
///lbl[i].Text += "</br>";
i++; }
} while (dataReader.NextResult());
dataReader.Close();
类中代码:
public SqlDataReader getcom(string SQLstr)
{
conn.Open(); //打开与数据库的连接
SqlCommand cmd = new SqlCommand(SQLstr, conn); //创建一个SqlCommand对象,用于执行SQL语句
SqlDataReader dataReader = cmd.ExecuteReader(); //执行SQL语句,生成一个SqlDataReader对象
return dataReader;
}
int i = 0;
do
{
if (dataReader.Read())
{
lbl[i] = new Label();
cbl[i] = new CheckBoxList();
lbl[i].Text = dataReader.GetString(1);
cbl[i].Items.Add(dataReader.GetString(2));
cbl[i].Items.Add(dataReader.GetString(3));
cbl[i].Items.Add(dataReader.GetString(4));
this.Page.Controls.Add(lbl[i]);
this.Page.Controls.Add(cbl[i]);
///lbl[i].Text += "</br>";
i++; }
} while (dataReader.NextResult());
dataReader.Close();
类中代码:
public SqlDataReader getcom(string SQLstr)
{
conn.Open(); //打开与数据库的连接
SqlCommand cmd = new SqlCommand(SQLstr, conn); //创建一个SqlCommand对象,用于执行SQL语句
SqlDataReader dataReader = cmd.ExecuteReader(); //执行SQL语句,生成一个SqlDataReader对象
return dataReader;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货