zoukankan      html  css  js  c++  java
  • 一个简单登陆框的变化+更新了如何连接sql数据库,获得数据集,比较两种方法(数据集和读数据)

    一般我们写系统登陆的时候,在类文件中定义好验证的函数或过程,如

    public static Boolean LoginCheck(string UserNameStr, string PassWordStr, string power)
        {

            string SqlString = "select UserNameStr,PassWordStr from school_data where UserNameStr='" + UserNameStr + "'and PassWordStr='" + PassWordStr + "'and power='" + power + "'";
            //OleDbConnection OleDbConn = new OleDbConnection(ConfigurationManager.AppSettings["ConnectionString"]);
            OleDbConnection OleDbConn = new OleDbConnection(cnn);//采用相对路径后不要上一句
            OleDbCommand OleDbCmd = new OleDbCommand(SqlString, OleDbConn);
            OleDbConn.Open();
            OleDbDataReader OleDbReader = OleDbCmd.ExecuteReader();
            Boolean FindUser = false;
            while (OleDbReader.Read())
            {
                FindUser = true;
            }
            if (FindUser)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    甚至一些连power也没有定义,就更加简单了,一般我们定义power是表示该用户的权限的。
    考虑到数据库连接一般确定,当然实际是可以很轻易改变的,我们这里谈不变的情况,则数据库中有验证用户表data,在类中定义好函数
     public static Boolean LoginCheck_fromdb(string UserNameStr, string PassWordStr, string power, string table_name)//带指定表名的查询权限的登陆验证
        {
            string SqlString = "select UserNameStr,PassWordStr from " + table_name + " where UserNameStr='" + UserNameStr + "'and PassWordStr='" + PassWordStr + "'and power='" + power + "'";
            OleDbConnection OleDbConn = new OleDbConnection(cnn);
            OleDbCommand OleDbCmd = new OleDbCommand(SqlString, OleDbConn);
            OleDbConn.Open();
            OleDbDataReader OleDbReader = OleDbCmd.ExecuteReader();
            Boolean FindUser = false;
            while (OleDbReader.Read())
            {
                FindUser = true;
            }
            if (FindUser)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    我们在参数项中定义多一个表名,则就轻松实现了在库中的验证了,例子应用。
    if (data.LoginCheck_fromdb(Login1.UserName, Login1.Password, "0", "data") == true && yanzheng_ma ==TextBox1 .Text )//加上了验证码,防止多次尝试
            {
                Session["UserSession"] = this.Login1.UserName;//利用Session传递变量值
                Response.Redirect("ok.aspx");
            }
            else
            {
                Response.Write("<script>alert('用户名或密码错误!')</script>");
            }
    红色涉及验证码中,就需要到本站“随机数中的小小理解”看例子和说明了,也不复杂
    在实际研究中,我们还可以类似这样动态改变参数,如power,这样就要看实际需要了。7月看来无写到,就写一篇啦,哈。

    如果是sqlserver中,我们建立了数据库hhwtest,建立表userlogin,定义为varchar类型,不要定义为char,name和pwd,则这样登陆验证

    看下面web.config配置好先
    <appSettings >
        <add key="ConnString" value="Server=127.0.0.1;Database=test;uid=123;pwd=123456"/>
      </appSettings>

    然后,在登陆页面中添加一个控件,登陆控件写上

    protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
        {
              //创建一个SqlConnection对象      
            string cn = System.Configuration.ConfigurationManager.AppSettings["ConnString"];//新型写法
            SqlConnection Conn = new SqlConnection(cn);

              Conn.Open();
            string sqlstring = " SELECT username,userpassword FROM users_login ";
            //创建一个 DataSet对象
             DataSet myDataSet = new DataSet();
             SqlDataAdapter cmd = new SqlDataAdapter(sqlstring, Conn);//定义,并实例化
            cmd.Fill(myDataSet, "users_login");//获得数据集的方法

            string username1 = myDataSet.Tables[0].Rows[0]["name"].ToString();//应用数据集的元素
            string userpassword = myDataSet.Tables[0].Rows[0]["pwd"].ToString();

    //验证开始,
             if ((Login1.UserName.ToString() ==username1) && (Login1.Password.ToString() ==userpassword))
            {
                myConn.Close(); 
                Response.Redirect("Default2.aspx");           
            }
            else
            {
                Response.Write("you are wrong");
            }           
           
        }

    在Default2.aspx页面中,

            protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["username"] !=""&&Session ["username"]!=null)
                Response.Write("欢迎登陆");
            else
                Response.Redirect("default.aspx");
            }

    是不是很简单呢?哈哈,复习也是学习到得。

    string cn = System.Configuration.ConfigurationManager.AppSettings["ConnString"];
                SqlConnection conn=new SqlConnection (cn );
                conn.Open ();

    string sql="select * from userlogin where strUserName='"+Login1 .UserName +"' and strPassword='"+Login1 .Password +"'";
             SqlCommand cmd = new SqlCommand(sql, conn);//上一cmd是SqlDataAdapter,这里是SqlCommand,不同 
                SqlDataReader  reader = cmd.ExecuteReader();  //用读数据的方法
                if (reader.Read())
                {
                    Session["admin"] = reader["strUserName"].ToString();
                    Session["iLevel"] = reader["iLevel"].ToString();
                     conn.Close();
                     Response.Redirect("index.aspx");
                }

    else

    {  msg("错误!");

     }

  • 相关阅读:
    C# 填充客户端提交的值到T对象
    mvc中hangfire全局简单配置
    mvc企业微信开发全局配置
    js获取简单表单对象(1)
    MVC伪静态路由简单搭配
    [转]一些实用的图表Chart制作工具
    【转】SQL Server 数据库内部版本号
    SVN的搭建和使用总结
    解决ext时间插件在谷歌下变宽的BUG
    Hibernate中Session.get()/load()之区别
  • 原文地址:https://www.cnblogs.com/pyman/p/1534349.html
Copyright © 2011-2022 走看看