SqlCommand cmd = new SqlCommand("select * from 用户名密码 where 用户名=@ID ", con);
         cmd.Parameters.Add("@ID", this.textBox1.Text);
         cmd.Parameters.Add("@Password", this.textBox2.Text);
SqlDataReader sdr = cmd.ExecuteReader();
if (sdr.Read())
{
          if("@Password" == sdr["密码"].ToString())
{
Form2 newForm=new Form2();
newForm.Show();
}
}
sdr.Close();好象if("@Password" == sdr["密码"].ToString())  就这句有问题.不知道怎么改.请指教

解决方案 »

  1.   

    if("@Password" == sdr["密码"].ToString())
    不对应该为
      if(this.textBox2.Text == sdr["密码"].ToString())
      

  2.   

    这样做..可以改成这样:
                SqlCommand cmd = new SqlCommand("select count(*) from 用户名密码 where 用户名=@ID ", con);
                cmd.Parameters.Add("@ID", this.textBox1.Text);
                con.Open();
                int count = Convert.ToInt32(cmd.ExecuteScalar());
                if (count > 0)
                {
                    //说明该用户存在
                }
                else
                {
                    //说明用户不存在
                }
                con.Close();
      

  3.   

    不好意思,SQl语句忘改了,这样:
                SqlCommand cmd = new SqlCommand("select count(*) from 用户名密码 where 用户名=@ID and 密码=@Password", con);
                cmd.Parameters.Add("@ID", this.textBox1.Text);
                cmd.Parameters.Add("@Password", this.textBox2.Text);
                con.Open();
                int count = Convert.ToInt32(cmd.ExecuteScalar());
                if (count > 0)
                {
                    //说明该用户存在
                }
                else
                {
                    //说明用户不存在
                }
                con.Close();
      

  4.   

    还是不对啊...我用textBox3.Text = sdr["密码"].ToString()测试了一下.可以显示出密码说明是不是等号左边的格式不对啊
      

  5.   

    如果一定要用SqlDataReader,这样也行..            SqlCommand cmd = new SqlCommand("select * from 用户名密码 where 用户名=@ID ", con);
                cmd.Parameters.Add("@ID", this.textBox1.Text);
                con.Open();
                SqlDataReader sdr = cmd.ExecuteReader();
                if (sdr.Read())
                {
                    if (sdr["密码"].ToString() == this.textBox2.Text.Trim())
                    {
                        //说明用户存在
                        Form2 newForm = new Form2();
                        newForm.Show();
                    }
                }
                sdr.Close();
                con.Close();
      

  6.   

    那是因为你用的这句的原因:if("@Password" == sdr["密码"].ToString())
    这是什么意思啊?"@Password"这只是一个字符串啊,并不代表参数所对应的值...还有就是SqlCommand的CommandText select * from 用户名密码 where 用户名=@ID 
    明明这里面只有一个参数,而你却添加了两个,多添加的一个"@Password"也没用...
      

  7.   

    楼上的这段还是不行啊
     if (sdr["密码"].ToString() == this.textBox2.Text.Trim())刚才那个COUNT算法可以.这个算法还是不行