private void button1_Click(object sender, EventArgs e)
        {
            string s1="0";
            string s2 = "0";
            string s3 = "0";
            s1 = textBox1.Text;
            s2 = textBox2.Text;
            cmd1 = new SqlCommand("select 密码 from 用户库 where 用户名= '" + s1 + "'", con);
            con.Open();
            s3=Convert.ToString(cmd1.ExecuteScalar());
            con.Close();
            if (s2 == s3)
            {
                
                textBox2.Text = s1;
            }
            else
            {
                textBox1.Text = s3;
            }
        }
我想实现的功能是如果用户名密码正确,那么文本框2就显示成用户名
如果不正确文本框1就显示密码
结果无论正不正确
都是文本框1就显示密码

解决方案 »

  1.   

    这个要求真是不知道有什么作用。
    文本框1 刚开始的时候显示的是用户名,如果输入的密码是错的,那么在文本框1中显示正确的密码。你可以单步调试测试一下,我估计是  if (s2 == s3) 这里虽然你输入的密码和数据库中相同,但是可能传回来的数据比较时除了问题。用equals什么的试试。
      

  2.   

    我本来是想如果用户名密码正确就实现某个功能
    但是我一开始不确定是不是那段功能代码出错了
    所以先设定个简单的功能先试验一下,
    还有用equals也不行。
    到底哪里出错了啊
      

  3.   

    s3明显返回的是影响的行数啊,你用ExecuteRead()这个方法,之后循环读取,在赋给s3,你好好看看
    执行数据库的方法把,例如ExecuteRead(),ExecuteScalar(),ExecuteNoneQuery(),等
      

  4.   

    s3=Convert.ToString(cmd1.ExecuteDataView().Table.ToList()[0]);
      

  5.   

    "select 密码 from 用户库 where 用户名= '" + s1 + "'"为什么 要把密码取出来比对呢。。
    写在条件语句里不是更好?
      

  6.   

     private void button1_Click(object sender, EventArgs e)
            {
                OleDbDataReader reader = null;
                string s1="0";
                string s2 = "0";
                
                s1 = textBox1.Text;
                s2 = textBox2.Text;
                string sqlmsg;
                sqlmsg = "select * from 用户库 where 用户名= " + s1 + "and  密码 =" + s2;
                cmd1 = new SqlCommand( sqlmsg, con);
                con.Open();
                
                reader = cmd.ExecuteReader();
                con.Close();
                if (reader.Read())
                {
                    
                    textBox2.Text = s1;
                }
                else
                {
                    MessageBox.Show("密码不正确");
                }
            }
    如果你要输出 正确密码的话
    改语句 为你的那个 "select 密码 from 用户库 where 用户名= '" + s1 + "'"
    填充readerelse
    {
    textbox1.text = reader["密码"].ToString();
    }
      

  7.   


    s3=Convert.ToString(cmd1.ExecuteScalar()); ---你确定这个能取到用户名么.
    得学会调试啊.F9打个断点, 一看就明白
      

  8.   

    孩子你还是好好去学习基础知识吧。cmd1.ExecuteScalar();你知道这个方法的作用吗如果不知道你就不要乱用他。cmd1.ExecuteScalar()
    描述如下:读取出第一条记录的第一列的值,如果无记录则为 DBNULL