日期:2014-05-16  浏览次数:20893 次

asp.net 用sqldatareader读取数据
        SqlConnection conn = mybbs.Sqlcon();
        conn.Open();
        SqlCommand cmd = new SqlCommand(sqlstr, conn);
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.Read())
        {   
            TextBoxshow.Text = dr["text"].ToString();
        }
        dr.Close();
        conn.Close();
代码如上,如何没有if 的条件语句,会有“在没有任何数据时进行无效的读取尝试。”错误,调试追踪时发现dr.hasrows 为true。说明是有数据的,但报错。加上if  的条件语句以后能够正常读取数据。怎么解释???
ASP.NET 调试 数据库

------解决方案--------------------
SqlDataReader 的默认位置在第一条记录前面。因此,必须调用 Read 来开始访问任何数据。