C# 我如何知道何时到达数据读取器的末尾?

C# 我如何知道何时到达数据读取器的末尾?,c#,database,sqldatareader,C#,Database,Sqldatareader,我写了这段代码,但问题是while语句总是正确的! 当中继器响起时,如何使用读取所有读卡器信息?最简单的方法是将read()作为循环条件 cmd.CommandText = "select name from Tbl_Shahr_No"; SqlDataReader reader = null; reader = cmd.ExecuteReader(); reader.Read(); while(reader.HasRows) { ddl.Items.add(reader["name"

我写了这段代码,但问题是while语句总是正确的!
当中继器响起时,如何使用
读取所有读卡器信息?

最简单的方法是将
read()
作为循环条件

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()
}
IDataReader.
返回布尔值。将其用作while循环的条件:

while (reader.Read())
{
     // grab data
}
使用
中的方法,而

它将SqlDataReader前进到下一条记录

如果有更多行,则返回true;否则就错了

或者,数据将dropdownlist绑定到SqlDataReader,而不必手动迭代它

while(reader.Read())
{
   ddl.Items.add(reader["name"].ToString());
}
当reader.Read()返回false时,则使用

while (reader.read())
{
   // do your thing here for each row read
}
它将循环,直到不再有行

但是,如果datareader有多个数据集,请使用以下命令

while(reader.Read())
{
    //do some thing here
}
while (reader.read())
{
   // do your thing here for each row read
}
while(reader.Read())
{
    //do some thing here
}
while(reader.Read())
{
    //First dataset
    //do some thing here
}
reader.NextResult();
while(reader.Read())
{
    //Second dataset
    //do some thing here
}
......