cmd.CommandText = "select name from Tbl_Shahr_No";
SqlDataReader reader = null;
reader = cmd.ExecuteReader();
reader.Read();
while(reader.HasRows)
{
ddl.Items.add(reader["name"].tostring());
reader.read()
}
我写了这段代码,但问题是虽然声明一直都是真的!
如何使用while
或转发器环读取所有读者信息?
答案 0 :(得分:7)
最简单的想法就是让Read()
成为循环条件。
while (reader.Read())
{
// grab data
}
答案 1 :(得分:7)
使用while
中的.Read()
方法。
它将SqlDataReader推进到下一条记录。
如果有更多行,则返回true;否则是假的。
while(reader.Read())
{
ddl.Items.add(reader["name"].ToString());
}
或者,将您的下拉列表数据绑定到您的SqlDataReader ,并且不要手动迭代它。
ddl.DataSource = reader;
ddl.DataTextField = "name";
ddl.DataValueField = "name";
ddl.DataBind();
答案 2 :(得分:3)
IDataReader.Read()
返回一个bool。将它用作while循环的条件:
reader = cmd.ExecuteReader();
while(reader.Read())
{
ddl.Items.add(reader["name"].tostring());
}
答案 3 :(得分:2)
当reader.Read()返回false时,不再有行,所以使用
while(reader.Read())
{
//do some thing here
}
它将循环,直到没有更多的行!
但是如果datareader有多个数据集,请使用以下
while(reader.Read())
{
//First dataset
//do some thing here
}
reader.NextResult();
while(reader.Read())
{
//Second dataset
//do some thing here
}
......
答案 4 :(得分:1)
while (reader.read())
{
// do your thing here for each row read
}