有一个User表
列名                  1                   2
UserName              admin               a
UserPwd               admin               a
form窗体上有.
textBox1 用户名
textBox2 密码
怎么样写这个Button的ONclink事件来验证用户名密码是否正确?
请高手指教

解决方案 »

  1.   

    一般都是这样写的,密码验证不要使用明码,这样很容易被人用winhex看到密码。
      

  2.   

    Click()
    1.连数据库
    2.执行验证的SQL
    3.看执行结果
    4.如果对了就......
      如果错了就.....
      

  3.   

    SELECT * FROM USER WHERE UserName=user AND UserPwd=pass,这是最经典的验证错误。千万不要这样写。:)
      

  4.   

    先谢谢各位了
    大家看看我这么写出现什么错误了
    sqlConnection1.Open ();
    string sql=string .Format ("select E_Int from where E_Name={0} and E_Pwd={1}",textBox1.Text ,textBox2.Text );
    SqlCommand cmd =new SqlCommand (sql,sqlConnection1);
    SqlDataReader dr=cmd.ExecuteReader();
    if(dr.read())
    {
    FormMain fm=new FormMain ();
    fm.Show (); }
    else 
    {
    MessageBox .Show ("用户名密码错误!");
    return;
    }请问一下怎么样获取string sql=string .Format ("select E_Int from where E_Name={0} and E_Pwd={1}",textBox1.Text ,textBox2.Text );里面的E_Int的值那(是否存在)?
    我想判断这个id.如果是存在显示下一个界面,如果不存在.return;
      

  5.   

    fuyiyong(戴眼镜的猫)你好谢谢 你的回复.我就是想知道你说的第三步"看执行结果"该如何去实现~~
      

  6.   

    用户名用:’or’’=’ 密码用’or’’=’ 会出现什么问题.呵呵
      

  7.   

    刚才用查询分析器试了一下,按照Avoid() 你说的方法,可以通过,但是E_Int没有返回值.
    然而现在最关键的不是安全问题,是我的程序都运行步了.还怎么谈安全,,
    5555555555@[email protected] ME!
    怎么先能让程序通过啊~
      

  8.   

    select E_Int from where E_Name={0} and E_Pwd={1}
    from 后面的表名呢
      

  9.   

    lpzwm(萍儿)表我后来发现加上后也还是不好使~
    刚开始还以为因为表名叫User跟系统冲突.然后就该了个表名叫Manager
    结果还是步好使,我用try
    catch
    检查,结果出现列名不对~晕了.Form窗体登陆到底该怎么写.非得需要用存储过程吗?
    谁能帮帮我
      

  10.   

    E_Int,E_Name,E_Pwd 要求都是真实的字段名才行,
    如果E_Int只是你想得到一个数值来判断是否存在该用户,要用 count(*) as E_Int
      

  11.   

    首先用USE语句,如数据库叫db。 USE db
    列用Manager.UserName这种格式
      

  12.   

    netgrid(网格) 我不懂你那个count(*) as E_Int该加在哪里.
      

  13.   

    Avoid() 你真是惜字如金啊.说明白点啊 唉~
    只能我自己试验了-_-;
      

  14.   

    使用加密类去加密判断是否相等,数据库中存放Hash5加密后的密码.
    1.select count(*) from table;
    2.fill (dataset1);
    3.if(dataset1.table[0].count==0)  
          //User doesnot exist
       else
       {
          if( Authorate(txtUserInput.txt)==dataset1.table[0][password])
              //ok
           else
              //password error
       }微软有个著名的IssueDemo例子,你看一下,使用WebService连接数据库认证.注:Authorate认证类是微软提供的.该单词我写的可能会错一两个字母.记不清楚了.
      

  15.   

    写错了.
    1.select count(*) ...
    2.if (..count==0 )
    3.select userName,userpassword from ....
    4. if(authorate(....)进行两次查询.
      

  16.   

    six_six_2005(六六)
    感谢你这么详细的写初解决方法.也使我又多学习了一种方法.
    并且感谢其他帮助我的朋友们~