我在数据库把  账号 设为  wang 密码 设为 d  在登录时提示我输入字符串格式错误;
我在数据库把  账号 设为  1   密码 设为  1   可以正常登录 ;
我在数据库把  账号 设为  王鹏翀   密码 设为 chyjty   在登录时没有响应 ;
这是怎么回事  请路过的大大 讲解一下!!!!

解决方案 »

  1.   


                if (textBox1.Text == "")
                {
                    MessageBox.Show("请输入用户名", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    if (textBox2.Text == "")
                    {
                        MessageBox.Show("请输入密码", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else
                    {
                        string str1 = "Data Source=WIN-BKDRIUBDOO8;Initial Catalog=jiayong;Integrated Security=True";
                        SqlConnection conn = Class1.CyCon();                    conn.Open();
                        SqlCommand cmd = new SqlCommand("select * from [user] where [name]='" + textBox1.Text + "' and power='" + textBox2.Text + "'", conn);
                                            
                        if(Convert.ToInt32(cmd.ExecuteScalar()) > 0)
                        {
                           Form2 main = new Form2();
                            main.Show();
                            this.Hide();
                        }
                        else
                        {
                            MessageBox.Show("用户名或密码错误");
                        }
                    }
      

  2.   

                if (textBox1.Text == "")
                {
                    MessageBox.Show("请输入用户名", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    if (textBox2.Text == "")
                    {
                        MessageBox.Show("请输入密码", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else
                    {
                       string str1 = "Data Source=.;Initial Catalog=jiayong;Integrated Security=True";
                        SqlConnection conn = new SqlConnection(str1);                    conn.Open();
                        SqlCommand cmd = new SqlCommand("select name,password from [user] where name='" + textBox1.Text + "' and password ='" + textBox2.Text + "'", conn);
                        SqlDataReader dr = cmd.ExecuteReader();                    if (dr.HasRows)
                        {
                           Form2 main = new Form2();
                            main.Show();
                            this.Hide();                    }
                        else
                        {
                            MessageBox.Show("非法用户名称或密码!", "出错提示信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }               
                    }
                }
      

  3.   

    textBox2.Text和密码都先Trim方法试试。
      

  4.   

    SqlConnection conn = Class1.CyCon();
    这句错误应该换为:sqlconnection conn=new sqlconnection(str1)
      

  5.   

    Trim方法很重要,曾经为此大费周折。
      

  6.   

    还 有我发现我用这个方法编写的登录界面在关闭from2是并没有停止调试,我知道原因但是不知道怎样去修改
      

  7.   

    Trim方法很重要,曾经为此大费周折。
      

  8.   

    你登录界面并没有真正关闭。
    在关闭form2的语句里加上语句:Application.Exit();
      

  9.   

    ExecuteScalar 返回第1行第1列的值,你把它转为int,当然有问题!
      

  10.   

    改成 Select count(*) ....就OK
      

  11.   

    首先你要知道这句cmd.ExecuteScalar()的意思。它返回的是查询结果集中的第一行第一列的值
    所以 
    账号 设为 wang 密码 设为 d 在登录时提示我输入字符串格式错误;是因为返回的是wang你将它转换为int型。 账号 设为 1 密码 设为 1 可以正常登录 ;是因为返回的是1大于0。通过!第三个就不知道什么原因。或者像 cy_paul 说的改成 Select count(*) 返回的是行数。也可以。