Visual Studio 2022 连接MySQL数据库,并简单实现登陆注册等功能(.NET开发)

一.前置工作

1.为VS中的项目安装MySQL程序包,安装方式如下所示:

2.数据库准备

(1)记住MySQL数据库的主机名用户名密码

(2)创建数据据库test(尽量不要用中文,字符集选utf-8)

(3)新建查询创建一个简单的表users

包括id,name,pwd,age,phone.其中id为主键且自增.

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    pwd VARCHAR(50) NOT NULL,
    age INT,
    phone VARCHAR(50)
);

(4)插入几条数据

INSERT INTO users (NAME, pwd, age, phone)
VALUES
	('张三', '123456', 20, '13000000000'),
	('李四', '123', 50, '17611111111'),
	('王五', '0000', 10, '18522222222')

3.连接测试(重点

做好了上面准备后进行简单的连接测试

(1)添加一个web窗体(后缀为aspx),并打开它的后端逻辑处理页面(后缀为aspx.cs)

(2)Page_Load中键入代码(注释写的很清楚,方便自己和大家学习)

//server=主机名,userid=用户名,pwd=密码(我的密码设置为空所以没写),
//database=数据库名,charset=utf8mb4表示编码格式
string connet = "server=localhost;user id=root;pwd=;database=test;charset=utf8mb4"; 

//创建一个新的MySqlConnection对象实例,并使用名为connet的字符串来配置这个连接对象
//然后将这个新创建的连接对象引用赋值给名为con的变量。
MySqlConnection conn = new MySqlConnection(connet);

//打开连接
conn.Open();

// 定义一个字符串变量sql,并赋值为一个SQL查询语句  
// 这个查询语句的目的是计算users表中的记录总数
string sql = "select count(*) from users";

// 创建一个MySqlCommand对象,用于执行SQL语句  
// 构造函数的第一个参数是SQL语句,第二个参数是与该SQL语句关联的数据库连接对象
MySqlCommand cmd = new MySqlCommand(sql, conn);

// 执行SqlCommand对象的ExecuteScalar方法  
// 这个方法用于执行查询并返回查询结果中的第一行第一列的值  
// 因为我们的SQL语句是计算总数,所以返回的是一个整数  
// 使用Convert.ToInt32方法将返回的结果转换为整数类型
int result = Convert.ToInt32(cmd.ExecuteScalar());

// 使用Response.Write方法向客户端输出一条消息  
// 这条消息包含了数据库中users表的记录总数 
Response.Write("数据库中共有" + result + "条数据");

//关闭连接,释放资源(事实上也可以不关)
conn.Close();

(3)在web窗体中,右键并选择浏览器进行查看

可见连接成功。

二.登陆页面

1.前端设计

使用NAME和PWD进行登录

2.后端逻辑(放在登录按钮的点击事件里)

直接贴代码(仅为初学者的学习提供方便,存在SQL注入风险)

// 从TextBox1,TextBox2控件中获取用户输入的用户名,密码,并去除前后的空格  
string name = TextBox1.Text.Trim(),pwd = TextBox2.Text.Trim(); 
 

string connet = "server=localhost;user id=root;pwd=;database=test;charset=utf8mb4";  
  
// 使用上面定义的连接字符串创建MySqlConnection对象  
MySqlConnection conn = new MySqlConnection(connet);  
  
// 打开数据库连接  
conn.Open();  
  
// 定义SQL查询语句,用于检查数据库中是否存在与输入的用户名和密码相匹配的用户  
// 注意:此处的SQL语句存在SQL注入风险,因为用户名和密码是直接拼接进SQL语句的  
// 在实际开发中,应使用参数化查询来避免此类风险  
string sql = "SELECT COUNT(*) FROM users WHERE name='" + name + "' AND pwd='" + pwd + "'";  
  
// 使用上面定义的SQL语句和数据库连接对象创建MySqlCommand对象  
MySqlCommand cmd = new MySqlCommand(sql, conn);  
  
// 执行查询,并获取结果(即匹配的用户数)  
// ExecuteScalar方法返回查询结果中的第一行第一列的值  
//int result = Convert.ToInt32(cmd.ExecuteScalar());  
  
// 根据查询结果判断用户是否登录成功  
if (result == 1)  
{  
    // 如果结果为1,表示用户名和密码匹配,登录成功  
    // 使用Response.Write方法向客户端输出JavaScript代码,弹出提示框并跳转到113.aspx页面
    // 记得更改部分数据  
    Response.Write("<script>alert('登录成功!');window.location.href='113.aspx';</script>");  
}  
else  
{  
    // 如果结果不为1,表示用户名或密码错误  
    // 使用Response.Write方法向客户端输出JavaScript代码,弹出错误提示框  
    Response.Write("<script>alert('用户名或密码错误!')</script>");  
}  
  
// 关闭数据库连接  
conn.Close();

3.运行效果(只进行一部分验证)

键入正确NAME和PWD,弹窗登录成功,并跳转到指定页面

这个页面是我自行添加的,自行更改其他页面

三.注册页面

1.前端设计

可以忽略后面的验证控件

2.后端逻辑(放在注册按钮的点击事件里)

// 从文本框控件中获取用户输入的用户名、密码、年龄和电话号码,并去除前后的空格  
string name = txtName.Text.Trim();  
string pwd = txtPwd.Text.Trim();  
string age = txtAge.Text.Trim();  
string phone = txtPhone.Text.Trim();  
    
string connet = "server=localhost;user id=root;pwd=;database=test;charset=utf8mb4";  
  
// 使用上面定义的连接字符串创建MySqlConnection对象  
MySqlConnection conn = new MySqlConnection(connet);  
  
// 打开数据库连接  
conn.Open();  
  
// 定义第一个SQL查询语句,用于检查数据库中是否存在与输入的用户名相匹配的用户   
string sql_1 = "SELECT COUNT(*) FROM users WHERE name='" + name + "'";  
  
// 定义第二个SQL语句,用于将新用户信息插入到数据库中的users表   
string sql_2 = "INSERT INTO users (name, pwd, age, phone) VALUES ('" + name + "', '" + pwd + "', '" + age + "', '" + phone + "')";  
  
// 使用上面定义的SQL语句和数据库连接对象创建MySqlCommand对象  
MySqlCommand cmd_1 = new MySqlCommand(sql_1, conn);  
MySqlCommand cmd_2 = new MySqlCommand(sql_2, conn);  
  
// 执行第一个查询,并获取结果(即匹配的用户数)  
// ExecuteScalar方法返回查询结果中的第一行第一列的值  
int result = Convert.ToInt32(cmd_1.ExecuteScalar());  
  
// 根据查询结果判断用户名是否已存在  
// 注意:此处没有直接输出result值,而是根据值来决定下一步操作  
// 如果要调试,可以取消注释Response.Write那行代码来查看result值  
// Response.Write("<script>alert('" + result + "')</script>");  
  
if (result == 0)  
{  
    // 如果结果为0,表示用户名不存在,可以注册新用户  
    // 执行第二个SQL语句,将新用户信息插入到数据库中  
    cmd_2.ExecuteNonQuery();  
      
    // 使用Response.Write方法向客户端输出JavaScript代码,弹出提示框并跳转到指定页面  
    Response.Write("<script>alert('注册成功!');window.location.href='111.aspx';</script>");  
}  
else  
{  
    // 如果结果不为0,表示用户名已存在  
    // 使用Response.Write方法向客户端输出JavaScript代码,弹出错误提示框  
    Response.Write("<script>alert('用户名重复!请重新注册!')</script>");  
}  
  
// 关闭数据库连接  
conn.Close();

3.运行效果(只进行一部分验证)

键入合适的数据

注册

查看数据库中表的数据

验证成功

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值