C#winform登录注册功能实现(连接SQL数据库)

3,625 阅读4分钟

作者:早问道 平台:vs2012,SQL server 2008R2

C#是设计windows窗体程序的良好语言,基于C#中各式各样封装好的控件,设计程序界面变得很简单!

本文介绍登录信息验证界面的设计,包含数据库的连接!(此模块在大学生毕业设计中常常用到)。

稍微接触过C#窗体设计的朋友,便知道C#的控件很多,直接拖动使用即可,登录界面简单可设计如下:

1.登录界面设计

此模块详细步骤不必多说,许多博客对C#设计窗体入门都有详细说明!拖动相关控件,修改相关属性!只需要label、textBox、以及button三种控件即可。

登录界面
界面中还有用于提示信息的label未显示;
在这里插入图片描述

2.数据库设计

2.1建立数据库

打开SQL server,建立连接有两种方式,windows验证和sql密码验证皆可,为了方便通常选用windows验证。在SQL server中新建数据库People,建立用户信息表peopletable表, 定义两个列,及用户名PEOPLEID和用户密码PEOPLEKEY,属性名自己定义即可,不要用user这种关键词,避免出错。

数据表

2.2连接数据库

两种方式,A.利用服务资源管理器连接,点击数据连接,右键添加连接;B.点击菜单栏中的工具,点击连接到数据库,出现如下界面

在这里插入图片描述
连接成功后如下图
在这里插入图片描述
在服务资源管理器可看见自己建立的数据库,以及用户信息表

3.响应事件

双击登录按钮,由于要与数据库相连,必须添加使用Data.sqlClient命名空间

在这里插入图片描述
sqlClient常用的有5个类用于数据访问连接等,见下表:

数据类 功能
SqlConnection 数据连接类,建立连接字符串后,连接数据库,是最常用的数据类
SqlCommand 数据命令类,对数据库中的数据增加、删除、修改时要用到;引用T-SQL语言,常用ExecuteNonQuery() 方法
SqlDataReader 读取数据类,读取数据库中的数据
DataSet 数据集类,理解为数据容器,可脱机
SqlDataAdapter DataSet和 SQL Server之间的桥接器

由于数据连接类SqlConnection是数据库连接的重点,建立数据连接字符串是基础,下面是数据连接字符串的详细介绍:

  string connectionString = "server=.;database=PEOPLE;integrated security=SSPI"; 

server是服务器名,可以填(ip地址,计算机名,(local),localhost,以及.也表示本地服务器),它们的作用是一样的; database是建立的数据库名称; integrated security=SSPI表示数据库的登录方式,此方式为windows验证;若为密码验证,则改为uid= ,pwd= ,具体信息如实填写。

在button_click事件中添加如下代码

 private void btnLogin_Click(object sender, EventArgs e)
        {
            //获取输入的用户名和密码信息,方便后面验证
            string userid = txtid.Text.ToString();
            string password = txtpassword.Text.ToString();
            
            //用户名或密码为空的情况,此处界面中要有label标签显示提示信息
            if (userid.Equals("") || password.Equals("")){
                lblLoginError.Text="用户名或密码不能为空";
            }   
            //用户名或密码不为空的情况   
            else{
                string connectionString = "server=.;database=PEOPLE;integrated security=SSPI"; 
                SqlConnection SqlCon = new SqlConnection(connectionString); //数据库连接
                SqlCon.Open(); //打开数据库
                string sql = "Select * from peopletable where PEOPLEID='" + userid + "' and PEOPLEKEY='" + password + "'";//查找用户sql语句
                SqlCommand cmd = new SqlCommand(sql,SqlCon);
                cmd.CommandType = CommandType.Text;
                SqlDataReader sdr;
                sdr = cmd.ExecuteReader();
                if (sdr.Read())         //从结果中找到
                {
                //信息验证成功,跳转到主界面frmLogin(自己所建立的界面,用textBox显示验证信息也可,自己灵活设置),关闭登录界面;
                //此三行代码常用于实现winform窗体之间的切换;其前两行是必须的
                    frmMain main = new frmMain();
                    main.Show();
                    this.Hide();
                }
                //输入用户名和密码错误的情况
                else
                {
                    lblLoginError.Text="用户名或密码错误,提示";
                    return;
                }
            }

4.注册界面

注册界面如下,与登录界面类似,此处未做优化。

注册界面
注册功能与登录功能类似,都需要连接数据库,方法也与登录模块一致。点击注册按钮,响应事件的代码如下:

 private void btnensign_Click(object sender, EventArgs e)
        {
         //获取输入的用户名 
            string userID = textsignid.Text.Trim();         
            //连接数据库
            //设置连接字符串
            string constr = "server=.;database=PEOPLE;integrated security=SSPI";  
            SqlConnection mycon = new SqlConnection(constr);                  //实例化连接对象
            mycon.Open();
            //新注册的用户是否存在
            SqlCommand checkCmd = mycon.CreateCommand();       //创建SQL命令执行对象
            string s = "select PEOPLEID from peopletable where PEOPLEID='" + userID + "'";
            checkCmd.CommandText = s;
            SqlDataAdapter check = new SqlDataAdapter();       //实例化数据适配器
            check.SelectCommand = checkCmd;                    //让适配器执行SELECT命令
            DataSet checkData = new DataSet();                 //实例化结果数据集
            int n = check.Fill(checkData, "register");         //将结果放入数据适配器,返回元祖个数
            if (n != 0)
            {
                lblsignerror.Text = "用户名存在";
                textsignid.Text = ""; textsignpsw.Text = "";
            }

            //确认密码
            else if (textensignpsw.Text != textsignpsw.Text) {
                lblsignerror.Text = "密码不一致!";
            }
            else if (textsignid.Text == "" || textsignpsw.Text == "" || textensignpsw.Text == "") {
                lblsignerror.Text = "请将信息填完整";
            }
            else {
                //插入数据
                string s1 = "insert into peopletable(PEOPLEID,PEOPLEKEY) values ('" + textsignid.Text + "','" + textensignpsw.Text + "')";          //编写SQL命令

                SqlCommand mycom = new SqlCommand(s1, mycon);      //初始化命令
                mycom.ExecuteNonQuery();   //执行语句
                mycon.Close();             //关闭连接
                mycom = null;
                mycon.Dispose();           //释放对象
                frmSignok main = new frmSignok();
                main.Show();
                this.Hide();
                this.Close();
            }
        }

以上就是C#登录注册功能的程序实现,重点理解C#利用数据类进行连接数据库,读取信息。

希望本文能为带来帮助!

在这里插入图片描述
取经之路,就在脚下!`