Datareader不显示第一行

Jac*_*All 1 c# asp.net datareader sqldatareader

我循环浏览我的数据库以显示玩家与之关联的联赛列表.如果玩家不是任何联赛的成员,则会显示一条消息告诉他们.

这是代码

if (dReader.Read())
{          
    while (dReader.Read())
    {
        usersLeagues.Text += "<li class=\"li-myLeagues\"><a  href=\"leagueDetails.aspx?leagueID=" + (dReader["leagueID"].ToString()) + "\">" + (dReader["leagueName"].ToString()) + "</a></li>";
    }
}
else
{
    usersLeagues.Text = "You are currently not a part of any leagues";
}
dReader.Close();
conn.Close();
Run Code Online (Sandbox Code Playgroud)

问题是数据阅读器没有显示查询中的第一个联盟.

知道为什么会这样吗?

Moh*_*han 9

更改

if (dReader.Read()){  
Run Code Online (Sandbox Code Playgroud)

if (dReader.HasRows){
Run Code Online (Sandbox Code Playgroud)

通过调用Read()if语句,你实际上是在读取数据的第一行.Read()while语句中再次调用,跳过第一个读取行.

您可以使用HasRows属性来检查阅读器是否包含任何数据.