代码人生的小狗窝

一行行枯燥的代码,却描绘出人生的点点滴滴

您现在的位置是:首页>_C#

有句代码不懂请一二

发布时间:2019-09-20浏览(1215)

    有句代码不懂请高手指点一二
    private bool ValidLogin(string username, string password)
      {
      //数据库放到项目目录/bin/debug 目录下
      bool result = false;
      OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\毕业设计.mdb");
      string strSql = "select * from 登陆表 where uID = @uid and pwd = @pwd";
      OleDbCommand cmd = new OleDbCommand(strSql, cn);
      cmd.Parameters.AddWithValue("@uid", tbx_uId.Text);
    cmd.Parameters.AddWithValue("@pwd", tbx_pwd.Text);//这里不太懂请高手指教
      cn.Open();
      OleDbDataReader dr = cmd.ExecuteReader();
      if (dr.HasRows)
      {
      result = true;
      }
      cn.Close();
      return result;
      }


    ------解决方案--------------------
    把你的两个textbox的内容传入到这两个参数中去。
    ------解决方案--------------------
    就是给@uid和@pwd传值
    select * from 登陆表 where uID = ‘tbx_uId.Text’ and pwd = ‘tbx_pwd.Text’了
    ------解决方案--------------------
    你可以到msdn上去找找关于 sqlcommand 对Parameters更详细的解释。。其实这也没什么了解的。。。总之一句话,添加参数到cmd中去用来执行那个sql语句。。。
    ------解决方案--------------------
    Parameters参数集合,Parameters.AddWithValue()表示增加一个参数到这个集合中,在这里的目的是用来对sql语句传入两个参数进行查询。如果存在这条记录,说明登录成功!
    ------解决方案--------------------
    cmd.Parameters.AddWithValue("@uid", tbx_uId.Text); 
    cmd.Parameters.AddWithValue("@pwd", tbx_pwd.Text);

    就是
    @uid = tbx_uId.Text
    @pwd = tbx_pwd.Text
    ------解决方案--------------------
    就如执行存储过程,将sql传入值变量化,能有效解决sql语句中含有转移字符的作用。
    ------解决方案--------------------
    楼上说的都没错,另外再补充一点
    OleDbCommand cmd = new OleDbCommand(strSql, cn); 
    cmd.Parameters.AddWithValue("@uid", tbx_uId.Text); 
    cmd.Parameters.AddWithValue("@pwd", tbx_pwd.Text);
    通过cmd.Parameters.AddWithValue("@uid", tbx_pwd.Text);传递的参数,在执行数据库命令的过程中可以过滤
    用户输入的数据中的敏感符号,比如"<",">"等等,防止用户SQL注入式攻击!
    ------解决方案--------------------
    探讨
    Parameters参数集合,Parameters.AddWithValue()表示增加一个参数到这个集合中,在这里的目的是用来对sql语句传入两个参数进行查询。如果存在这条记录,说明登录成功!

    ------解决方案--------------------
    赞同
    ------解决方案--------------------
    赞同