当前位置:   article > 正文

C#使用MySQL实现登录界面_c#登录界面

c#登录界面
1、简介:

​ 最近在搞一个使用C#窗体的RFID期末答辩,这里边用的编译器是VS2022,其中用到了MySQL实现的一个登录操作。这里记录一下。

2、效果:

在这里插入图片描述

在程序运行之后,弹出这么一个窗口,提示输入用户名和密码(这个颜色是单独设置的)。

  • 点击登录按钮,进行对用户名和密码进行在数据库中进行判别,有则登录到别的窗体(可自由设置)。
  • 点击注册按钮,进行用户名和密码的注册操作,写入到数据库的。
3、需要准备的东西
  1. 需要在本项目中安装MySQL插件,当然你的电脑中也要安装MySQL。在项目中安装插件的具体操作:

    • 点击打开在这里插入图片描述

    • 进入到这个页面搜索MySQL,如图,点击安装,当然如果安装最新版的MySQL插件,可能会报错。说是当前的窗体框架版本太低了,这时候要么修改自己项目的框架,要么选择安装低版本的MySQL插件。

      在这里插入图片描述

    • 勾选安装到本项目,安装好之后,就能在本项目中使用MySQL数据库了。

      在这里插入图片描述

  2. 数据库和表已经设计好了(前提是把MySQL安装好了,并且有实例化的数据库),比如我这里就用到了个用户表,它的结构如下,可根据具体需求设计:

    在这里插入图片描述

4、详细设计
  1. 打开VS2022,选择创建C#窗体程序,进入到窗体的设计页面,进行窗体的设计,这里比较简单,就用到了lable、textBox、Button(注意才按钮的下边我还弄了个lable的信息提示标签):

    在这里插入图片描述

  2. 双击登录按钮,进入登录按钮的单击事件代码编写如下:

    		private void button_logon_Click(object sender, EventArgs e)
            {//这个函数名称可能不一样,我这里改了button的名字的
                //那两个textBox的名字也要根据自己的更改
                string pswd = textBox_Pswd.Text.ToString();  //获取密码框文本
                string usrname = textBox_UsrName.Text.ToString();  //获取用户名文本
                //创建数据库对象
                MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();
                //用户名
                builder.UserID = "root";
                //密码
                builder.Password = "1234";
                //服务器地址,这里MySQL一般在本地的,都是这个
                builder.Server = "localhost";
                //连接时的数据库名字
                builder.Database = "my_db_01";
                
                try {
                    //定义与数据连接的链接
                    MySqlConnection connection = new MySqlConnection(builder.ConnectionString);
    
                    //打开这个链接
                    connection.Open();
    				
                    //编写的SQL查询语句,查询数据库中是否有这个用户并且密码相等
                    string strcmd = "SELECT COUNT(*) FROM rfid_usr WHERE name = @epc and pswd = @pswd";
                    MySqlCommand cmd = new MySqlCommand(strcmd, connection);
                    cmd.Parameters.AddWithValue("@epc", usrname);
                    cmd.Parameters.AddWithValue("@pswd", pswd);
                    int count = Convert.ToInt32(cmd.ExecuteScalar());
    
                    if (count == 1)
                        //这里我在登录按钮下边用的一个提示lable
                        label_Info.Text = "登录成功!";
                    else
                    {
                        label_Info.Text = "用户名错误或者密码错误!";
                        textBox_Pswd.Text = "";
                    }
                    connection.Close(); // 关闭连接
                }
                catch (MySqlException ex)
                {
                    // 处理数据库异常
                    MessageBox.Show("数据库操作出现异常:" + ex.Message, "错误");
                }
                catch (Exception ex)
                {
                    // 处理其他异常
                    MessageBox.Show("发生了未知错误:" + ex.Message, "错误");
                }
                //如果提示信息为登录成功则切换到别的工作界面
                if (label_Info.Text == "登录成功!")
                {
                    // 隐藏当前窗体
                    this.Hide();
    
                    // 创建 main.cs 窗体的实例,这里的Main是另一个窗体文件的名字,两个Main都要改
                    Main loginFrom = new Main();
                    // 显示 main.cs 窗体
                    loginFrom.ShowDialog();
                    // 关闭当前登录窗体(可选)
                    this.Close();
                }
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
5、全部代码实现
//这里必须加上这个,才能使用MySql
using MySql.Data.MySqlClient;
using System;
using System.Windows.Forms;

namespace QiMoDaZuoYe
{
    //这里我的窗体名称叫logon,根据实际情况复制
    public partial class logon : Form
    {
        public logon()
        {
            InitializeComponent();
            button_lonin.Text = "注册";
            button_logon.Text = "登录";
            label_Info.Text = "";
            /*textBox_UsrName.Text = "wyl";
            textBox_Pswd.Text = "123";*/
        }
		//注册按钮单击事件,这里主要是切换到另一个页面进行注册操作
        private void button_Concel_Click(object sender, EventArgs e)
        {
            // 隐藏当前窗体
            this.Hide();

            // 创建 Form1.cs 窗体的实例
            Form1 loginFrom = new Form1();
            // 显示 Form1.cs 窗体
            loginFrom.ShowDialog();
            // 关闭当前登录窗体(可选)
            this.Close();
        }
		//登录按钮单击事件
        private void button_logon_Click(object sender, EventArgs e)
        {
            string pswd = textBox_Pswd.Text.ToString();
            string usrname = textBox_UsrName.Text.ToString();
            MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();
            //用户名
            builder.UserID = "root";
            //密码
            builder.Password = "1234";
            //服务器地址
            builder.Server = "localhost";
            //连接时的数据库
            builder.Database = "my_db_01";
            
            try {
                //定义与数据连接的链接
                MySqlConnection connection = new MySqlConnection(builder.ConnectionString);

                //打开这个链接
                connection.Open();

                string strcmd = "SELECT COUNT(*) FROM rfid_usr WHERE name = @epc and pswd = @pswd";
                MySqlCommand cmd = new MySqlCommand(strcmd, connection);
                cmd.Parameters.AddWithValue("@epc", usrname);
                cmd.Parameters.AddWithValue("@pswd", pswd);
                int count = Convert.ToInt32(cmd.ExecuteScalar());

                if (count == 1)
                    label_Info.Text = "登录成功!";
                else
                {
                    label_Info.Text = "用户名错误或者密码错误!";
                    textBox_Pswd.Text = "";
                }
                connection.Close(); // 关闭连接
            }
            catch (MySqlException ex)
            {
                // 处理数据库异常
                MessageBox.Show("数据库操作出现异常:" + ex.Message, "错误");
            }
            catch (Exception ex)
            {
                // 处理其他异常
                MessageBox.Show("发生了未知错误:" + ex.Message, "错误");
            }
            if (label_Info.Text == "登录成功!")
            {
                // 隐藏当前窗体
                this.Hide();

                // 创建 main.cs 窗体的实例
                Main loginFrom = new Main();
                // 显示 main.cs 窗体
                loginFrom.ShowDialog();
                // 关闭当前登录窗体(可选)
                this.Close();
            }
        }
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95

全部整体的代码实现,就如上图所示,根据自身的情况修改之后(注意看代码中的注释),其整体代码编写还是很容易实现的,对C#来说,整体的语法风格感觉还是跟C++类似,而且还有VS2022这样的优秀编译器,使用效果还不错,就是软件也太大了。那么这次的分享就这样了,下次不知道又是多久写了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/409250
推荐阅读
相关标签
  

闽ICP备14008679号