赞
踩
最近在搞一个使用C#窗体的RFID期末答辩,这里边用的编译器是VS2022,其中用到了MySQL实现的一个登录操作。这里记录一下。
在程序运行之后,弹出这么一个窗口,提示输入用户名和密码(这个颜色是单独设置的)。
需要在本项目中安装MySQL插件,当然你的电脑中也要安装MySQL。在项目中安装插件的具体操作:
点击打开
进入到这个页面搜索MySQL,如图,点击安装,当然如果安装最新版的MySQL插件,可能会报错。说是当前的窗体框架版本太低了,这时候要么修改自己项目的框架,要么选择安装低版本的MySQL插件。
勾选安装到本项目,安装好之后,就能在本项目中使用MySQL数据库了。
数据库和表已经设计好了(前提是把MySQL安装好了,并且有实例化的数据库),比如我这里就用到了个用户表,它的结构如下,可根据具体需求设计:
打开VS2022,选择创建C#窗体程序,进入到窗体的设计页面,进行窗体的设计,这里比较简单,就用到了lable、textBox、Button(注意才按钮的下边我还弄了个lable的信息提示标签):
双击登录按钮,进入登录按钮的单击事件代码编写如下:
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(); } }
//这里必须加上这个,才能使用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这样的优秀编译器,使用效果还不错,就是软件也太大了。那么这次的分享就这样了,下次不知道又是多久写了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。