错误提示:在没有任何数据时进行无效的读取尝试。
但我的数据库中有值值是0或1,为什么取不出来呢??????
代码:
//读取数据库连接字符串
            string setting6 = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
            //创建数据库连接
            SqlConnection myconn6 = new SqlConnection(setting6);
            //打开数据库连接
            myconn6.Open();
            string sql6 = "Select Lx From Student_xj Where StuId=" + Convert.ToInt32(e.Row.Cells[1].Text.ToString());
            //Response.Write(sql6);
            //Response.End();
            SqlCommand mycmd6 = new SqlCommand(sql6, myconn6);
            SqlDataReader mydr6 = mycmd6.ExecuteReader();
Response.Write(mydr6["Lx"].ToString());
                    Response.End();

解决方案 »

  1.   

    try
        {
    if(mydr6 !=null)
    {
    while (mydr6 .Read())
    {
        Response.Write(mydr6["Lx"].ToString()); 
    }
    }
    }catch(exception ex)
    {}
      

  2.   

      SqlDataReader mydr6 = mycmd6.ExecuteReader(); 
      mydr6.read();----这里加上应该可以
    Response.Write(mydr6["Lx"].ToString()); 
      

  3.   

    你得先Read()一次
    SqlDataReader mydr6 = mycmd6.ExecuteReader(); 
    if(mydr6.Read())
    {
        Response.Write(mydr6["Lx"].ToString()); 
    }
      

  4.   

    if(mydr6 .Read()) 

        Response.Write(mydr6["Lx"].ToString()); 
      

  5.   

     string sql6 = "Select Lx From Student_xj Where StuId=" + Convert.ToInt32(e.Row.Cells[1].Text.ToString()); 
                //Response.Write(sql6); 
                //Response.End(); 
                SqlCommand mycmd6 = new SqlCommand(sql6, myconn6); 
                SqlDataReader mydr6 = mycmd6.ExecuteReader(); -------------
    假如你确定记录只有一条,那么就不应该使用datareader,而应该调用ExecuteScalar(string )来返回单行单列值!!!!!!假如你非要用reader,那么可以考虑用我的方法,不过你还必须加上if(dr.HasRows)来判断是否有记录!