C#使用MySQL实现登录界面

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();
                }
            }
    
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();
            }
        }
    }
}

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

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 C#MySQL 实现登录界面的示例代码: 1. 首先,需要在项目中添加 MySQL .NET Connector 引用。可以通过 NuGet 包管理器来进行安装。 2. 创建一个 Windows 窗体应用程序,在窗体上放置用户名和密码的文本框、登录按钮等控件。 3. 在窗体的代码中,需要导入 MySQL Connector 的命名空间: ```csharp using MySql.Data.MySqlClient; ``` 4. 在登录按钮的 Click 事件处理函数中,编写连接 MySQL 数据库的代码: ```csharp private void btnLogin_Click(object sender, EventArgs e) { string connectionString = "server=localhost;user=root;database=mydb;password=mypassword"; MySqlConnection connection = new MySqlConnection(connectionString); connection.Open(); MySqlCommand command = connection.CreateCommand(); command.CommandText = "SELECT * FROM users WHERE username = @username AND password = @password"; command.Parameters.AddWithValue("@username", txtUsername.Text); command.Parameters.AddWithValue("@password", txtPassword.Text); MySqlDataReader reader = command.ExecuteReader(); if (reader.Read()) { MessageBox.Show("登录成功!"); } else { MessageBox.Show("用户名或密码错误!"); } connection.Close(); } ``` 5. 在上面的代码中,需要根据实际情况修改连接字符串中的服务器地址、数据库名称、用户名和密码。 6. 在 SELECT 查询语句中,@username 和 @password 是参数化查询的占位符,可以有效避免 SQL 注入攻击。 7. 使用 ExecuteReader 方法执行查询语句,并使用 Read 方法读取结果集中的第一行数据。如果能够成功读取,则说明用户名和密码匹配,登录成功;否则登录失败。 8. 最后,关闭数据库连接。 以上就是使用 C#MySQL 实现登录界面的基本步骤和示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值