我正在循环浏览我的数据库,以显示与玩家相关联的联赛列表。如果玩家不是任何联赛的成员,则会显示一条消息告诉他们。
这是代码
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();
问题是数据阅读器没有显示查询中的第一个联盟。
知道为什么会这样吗?
答案 0 :(得分:8)
更改
if (dReader.Read()){
到
if (dReader.HasRows){
通过调用Read()
语句中的if
,您实际上正在读取第一行数据。在Read()
语句中再次调用while
,会跳过第一个读取行。
您可以使用HasRows
属性来检查阅读器是否包含任何数据。
答案 1 :(得分:1)
if语句正在读取第一条记录,因此当您点击while语句时,它已移至第二条结果。