public Boolean IsExist(string ID)
        {
            string conn = "Data Source = 192.168.214.25; Initial Catalog = BookManager; Integrated Security = SSPI";
            SqlConnection myconn = new SqlConnection(conn);
            SqlCommand mycomm = myconn.CreateCommand();
            mycomm.CommandText = "SELECT  ReaderID From Reader";
            myconn.Open();
            SqlDataReader readerID = mycomm.ExecuteReader();
            myconn.Close();
            while (readerID.Read())
            {
                if (readerID.GetString(0) == ID)
                {
                    return true;
                }
                else
                    return false;
            }
           
        }请帮帮忙吧。。

解决方案 »

  1.   

    你的这个功能太麻烦了,ExecuteScalar()做这个更好,直接返回第一行第一列
    你的问题就是 while (readerID.Read())
                {
                    if (readerID.GetString(0) == ID)
                    {
                        return true;
                    }
                    else
                        return false;
                }
    只是在有读取时才返回
      

  2.   

    //当readerID.Read()==false时,也就是没记录时
    while (readerID.Read())
    这段代码没有返回值
      

  3.   

    mycomm.CommandText = "SELECT  ReaderID From Reader Where ReaderID =" + ID;
    myconn.Open();
    SqlDataReader readerID = mycomm.ExecuteReader();
    bool HasID = readerID.HasRows;
    readerID.Close();
    return HasID ;
      

  4.   

    if(readerID.HasRow)
    {   
    readerID.Read();
     if (readerID.GetString(0) == ID)
      {
        return true;
       }
    }
       
     return false;
      

  5.   

    请教 net_lover(【孟子E章】) readerID 需要 Close 来关闭它吗???