C#与数据库3——练习登录验证

这篇博客介绍如何在C#中结合数据库进行登录验证。通过在TestSchool数据库下创建TblUser表,构建Windows窗体应用,包括主窗体Form1和子窗体Form2,实现了用户登录的功能。此外,还创建了GlobalHelper静态类辅助处理数据交互,并进行了程序的调试。
摘要由CSDN通过智能技术生成
  1. 在数据库TestSchool下建立表格TblUser
    在这里插入图片描述
  2. 创建Windows窗体应用主窗体Form1
    在这里插入图片描述
  3. 创建Windows窗体应用子窗体Form2
    在这里插入图片描述
  4. 主窗体程序
        //验证用户登录是否成功
        private void button1_Click(object sender, EventArgs e)
        {
   
            #region 使用拼接sql的方式(不安全,有sql注入攻击问题)
            1.采集数据
            //string name = txtUserName.Text.Trim();
            //string pwd = txtPwd.Text;//密码不用去掉空格

            2.连接数据库校验是否成功
            //string constr = @"server=DESKTOP-FAVDBP3\MSSQLSERVER2014;user=123;pwd=123;database=TestSchool";
            //SqlConnection con = new SqlConnection(constr);
            //string sql = string.Format("select count(*) from TblUser where UserName='{0}'and Pwd='{1}'",
            //    name, pwd);
            //SqlCommand cmd = new SqlCommand(sql, con);
            //con.Open();
            // int  count =(int) cmd.ExecuteScalar();
            //if(count>0)
            //{
   
            //    this.BackColor = Color.Green;
            //}
            //else
            //{
   
            //    this.BackColor = Color.Red;
            //}
            //con.Close();
            #endregion


            //使用带参数的sql语句或者存储过程都能解决sql注入攻击问题
            #region 使用带参数的sql语句
            string constr = @"server=DESKTOP-FAVDBP3\MSSQLSERVER2014;user=123;pwd=123;database=TestSchool";
            SqlConnection con = new SqlConnection(constr);
            string sql = "select count(*) from TblUser where UserName=@name and Pwd=@pwd";
            SqlCommand cmd = new SqlCommand(sql, con);
            //1.当使用带参数的sql语句时
            //1>sql语句中会出现参数
            //2>如果sql语句中有参数,那么必须再command对象中提供对应的参数和值

            //创建两个参数对象
            //SqlParameter paramName = new SqlParameter("@name", SqlDbType.NVarChar, 30)
            //{ Value = txtUserName.Text.Trim() };
            //SqlParameter paraPwd = new SqlParameter("@pwd", SqlDbType.NVarChar, 50)
            //{ Value = txtPwd.Text };

            //cmd.Parameters.Add(paramName);
            //cmd.Parameters.Add(paraPwd);

            //-------------------------简便方法------------------------
            SqlParameter[] pms = new SqlParameter[]//定义一个参数数组
            {
   
                new SqlParameter
  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值