日期:2014-05-17  浏览次数:20743 次

小菜鸟求教超级简单问题
 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就显示密码
------最佳解决方案--------------------
你不会调试吗,打个断点,看看程序怎么执行的,你的条件肯定没有得到满足
------其他解决方案--------------------

s3=Convert.ToString(cmd1.ExecuteScalar()); ---你确定这个能取到用户名么.


得学会调试啊.F9打个断点, 一看就明白
------其他解决方案--------------------
这个要求真是不知道有什么作用。
文本框1 刚开始的时候显示的是用户名,如果输入的密码是错的,那么在文本框1中显示正确的密码。

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

你可以单步调试测试一下,我估计是  if (s2 == s3) 这里虽然你输入的密码和数据库中相同,但是可能传回来的数据比较时除了问题。用equals什么的试试。

我本来是想如果用户名密码正确就实现某个功能
但是我一开始不确定是不是那段功能代码出错了
所以先设定个简单的功能先试验一下,
还有用equals也不行。
到底哪里出错了啊
------其他解决方案--------------------
引用:
你不会调试吗,打个断点,看看程序怎么执行的,你的条件肯定没有得到满足

我菜鸟一只真不会调试
------其他解决方案--------------------
s3=s3.Trim();
------其他解决方案--------------------
s3明显返回的是影响的行数啊,你用ExecuteRead()这个方法,之后循环读取,在赋给s3,你好好看看
执行数据库的方法把,例如ExecuteRead(),ExecuteScalar(),ExecuteNoneQuery(),等


------其他解决方案--------------------