c#实现登录界面(sql连接)

第一次写c#,之前写过qt,写起来觉得跟qt的winform挺相像的。

完成基本的功能之后,后续有时间的话会优化一下。

首先把一个主界面窗体先创建好,叫它mainwindows,作为登录后的跳转。

创建一个login.cs,把主要的控件拖进去。

两个作为输入的textbox,三个按钮button,还有两个显示说明label。

此章主要是登录模块。

trim() 的功能:删除字符串首部和尾部的空格,函数执行成功时返回删除了string字符串首部和尾部空格的字符串。

设置一个判断,为空的话返回。


            string loginname = loginnametextBox.Text.Trim();
            string loginpwd = loginpwdtextBox.Text.Trim();
            if (String.IsNullOrEmpty(loginname) || String.IsNullOrEmpty(loginpwd))
            {
                MessageBox.Show("用户名或密码不能为空!");
                return;
            }
            

然后进行sql的连接,我这次用的是sql server 08版本的。(using System.Data.SqlClient;)完成后我试一下用mysql,其实原理也是一样,主要导入相对应的驱动。 

SqlConnection conn = new SqlConnection("server=服务器名;uid=用户;pwd=密码;database=数据库名");
            string sql = "SELECT name,password from login where name=@username and password=@pwd";
            SqlCommand cmd = new SqlCommand(sql, conn);//sql是需要执行的语句字符串,conn是连接对象
            conn.Open();//打开conn

/*
ADO.Net操作sql Server数据库的五大对象:

SqlConnection类:创建数据库连接对象
SqlCommand类:执行SQl语句对象
SqlDataReader类:创建一个查询一条或多条数据的对象
SqlDataAdapter类:创建一个用于检索和保存数据的对象
DataSet类:创建一个本地数据存储对象

*/

            cmd.Parameters.Add(new SqlParameter("@username", SqlDbType.NVarChar));
            cmd.Parameters["@username"].Value = loginname;

            cmd.Parameters.Add(new SqlParameter("@pwd", SqlDbType.NVarChar));
            cmd.Parameters["@pwd"].Value = loginpwd;
            //cmd.ExecuteNonQuery();

            SqlDataReader check = cmd.ExecuteReader();//存储数据集

cmd.Parameters.Add()方法添加参数到参数集,能有效防止sql注入(1' or '1'='1)

方法里面的第一个参数是要添加的参数名,第二个参数是参数的数据类型。Parameters的作用就是把存储过程执行结束后得到的参数传到程序里。

以下为判断。(功能实现没什么问题,主要还可以做一个优化,把密码错误和用户存不存在分开。)

登录成功做了一个跳转,跳转到mainwindows。

 if (!check.Read())
            {
                MessageBox.Show("用户不存在或密码错误!");
                loginnametextBox.Text = "";
                loginpwdtextBox.Text = "";
                conn.Close();
            }
            else if (check["password"].ToString().Trim() == loginpwd)
            {
                MessageBox.Show("登录成功!");
                conn.Close();

                mainwindows new_form = new mainwindows();
                new_form.Owner = this;
                this.Hide();
                new_form.ShowDialog();
                Application.ExitThread();
            }
            /*else
            {
                MessageBox.Show("密码错误!");
                loginpwdtextBox.Text = "";
                conn.Close();
            }
            */

登录成功的界面:

失败:

sql表只做了简单的设置,作为登录的测试。

后续:完成注册模块功能。待完成全系统之后,可能会进行一些美化。

  • 17
    点赞
  • 154
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值