读取UserInfo表中的一个Admin值   来判断是非管理员帐户;【下面是判断Admin是否为"Yes"的一个函数】,,,,"U"传递的是一个帐户名;
我的数据库有3个列:UName,Upwd,Admin;
public bool CheckAdm(string U)
        {
            string 
            SqlConnection con = new SqlConnection();
            con.ConnectionString = StrConnection;
            con.Open();            DataSet Ds = new DataSet();
            string QueueS="select UName from UserInfo where UName='"+U +"'";
            SqlCommand Qcmd = new SqlCommand(QueueS, con);
            SqlDataReader dr = Qcmd.ExecuteReader();
            
            if (dr.GetString (0)=="yes")
            {
                return true;
            }
            else
                return false;
        }运行后错误是“在没有任何数据时进行无效的读取尝试”可我的USERINFO表中有4条数据;
     我在 SqlDataReader dr = Qcmd.ExecuteReader();    后面加一条string GStr = dr.GetString(0);
            MessageBox.Show(GStr ); 出现的是同样的错误
     而如果从 SqlDataReader dr = Qcmd.ExecuteReader();
     后面改一下
          if (dr.Read ())
            {  
                string GStr = dr.GetString(0);
                MessageBox.Show(GStr );
 
                return true;
            }
            else
                return false;MessageBox.Show(GStr );弹出的却是传进这个函数的参数“U”。这是为什么?
  还有GetString(0)这个0代表的是什么是。除了用SqlDataReader  将数据读出来再传给变量外,还可以用别的方法吗?
----------------------------------------------------------------------------------------------
我才学ADO好多不懂希望高手指点  

解决方案 »

  1.   

    SqlDataReader dr = Qcmd.ExecuteReader();需要先执行dr.read()方法 才是在读取一行的数据然后在dr[""]读取行里的数据
      

  2.   

    SqlDataReader dr = Qcmd.ExecuteReader();要写一句dr.read();
    才是从返回的dr中定位第一行的数据
    在访问dr[0].ToString()就行了 
      

  3.   

    while(dr.read())
    {
      dr["UName"].toString();
    }
     这样就读出了UName字段了
      

  4.   

    public bool CheckAdm(string U)
            {
                string 
                SqlConnection con = new SqlConnection();
                con.ConnectionString = StrConnection;
                con.Open();            DataSet Ds = new DataSet();
                string QueueS="select UName from UserInfo where UName='"+U +"'";
                SqlCommand Qcmd = new SqlCommand(QueueS, con);
                SqlDataReader dr = Qcmd.ExecuteReader();
              //你的错误在这里没有写dr.Read();
                dr.Read();
                if (dr.GetString (0)=="yes")
                {
                    return true;
                }
                else
                    return false;
            }
      

  5.   

    昨晚精神恍惚了   一早起来发现这么多错误哈忘给StrConnection赋值了   还有应该是SELECT Admin
     
         感谢大家的帮忙…………