C#如何操作数据库

C#如何操作数据库

前言

本文主要交代如何通过引用

csharp 复制代码
using MySql.Data.MySqlClient;

来操作数据库

需要导入.dll文件

例如:在本地Mysql下载目录下->Connecter NET 8.0->Assemblies->net5.0->MySql.Data.dll

请根据实际情况,灵活选择.dll文件的版本

1、查询操作

csharp 复制代码
	//连接数据库字符串
    string conStr = "server=localhost;port=3306;user=root;password=123456;database=liardice";
    //建立mysql连接(连接池)
    MysqlConnection con = new MySqlConnection(conStr);
    //打开连接
    con.Open();
	//编写sql语句
	//此处直接拼接给入的account值,在后文(2、)中还会展示如何给sql语句添加参数
    string sql = "select id,account,password from userdata where account=" + account + ";";
    //Mysql命令对象
    MysqlCommand cmd = new MySqlCommand(sql, con);
    //执行,得到mysql的数据读取流
    MysqlDataReader reader = cmd.ExecuteReader();
    //这里展示的是查询一条消息,如果查出来很多条消息可以把if换成while循环
    if (reader.Read())//说明有这个信息
    {
    	//将查出来的信息封装到对象中
        UserData ud = new UserData();
        ud.setId((int)(reader[0]));
        ud.setAccount(reader[1].ToString());
        ud.setPassword(reader[2].ToString());
    }
    else//说明没有这个信息 暂不做处理
    {
        reader.Close();
    }
	//关闭资源,可以使用try-catch-finally等来完成
	if (reader != null)
	{
	    reader.Close();
	}
	if (cmd != null)
	{
	    cmd.Dispose();
	}
	if (con != null)
	{
	    con.Close();
}

2、增删改操作

增删改操作是类似的,此处用增加操作举例

csharp 复制代码
	//连接字符串
    string conStr = "server=localhost;port=3306;user=root;password=123456;database=liardice";
    //连接对象
    MysqlConnection con = new MySqlConnection(conStr);
	//打开连接
    con.Open();
    //编写sql语句
    string sql = "insert into userdata (account,password) values(@account,@password);";
    MysqlCommand cmd = new MySqlCommand(sql, con);
   //使用bcrypt加密
    string encryptedPassword = BCryptNet.HashPassword(password);
	//给sql语句添加参数,避免sql注入攻击
    cmd.Parameters.AddWithValue("@account", account);
    cmd.Parameters.AddWithValue("@password", encryptedPassword);
	//执行sql语句
    cmd.ExecuteNonQuery();

3、需要返回id主键的sql语句执行

只需在最后执行时,调用cmd.ExecuteScalar()方法即可

csharp 复制代码
int id = (int)cmd.ExecuteScalar();
相关推荐
Xin_ye100865 小时前
C# 零基础到精通教程 - 第七章:面向对象编程(入门)——类与对象
开发语言·c#
rockey6275 小时前
AScript异步执行与await关键字
c#·.net·script·eval·expression·异步执行·动态脚本
程序leo源7 小时前
Qt窗口详解
开发语言·数据库·c++·qt·青少年编程·c#
月巴月巴白勺合鸟月半11 小时前
质本洁来还洁去,强于污淖陷文本
c#
Xin_ye1008612 小时前
C# 零基础到精通教程 - 第八章:面向对象编程(进阶)——继承与多态
开发语言·c#
asdzx6713 小时前
使用 C# 打印 Excel 文档(详细教程)
c#·excel
伽蓝_游戏15 小时前
第四章:AssetBundle 核心机制与文件结构
unity·c#·游戏引擎·游戏程序
2501_9307077815 小时前
使用C#代码拆分 PowerPoint 演示文稿
开发语言·c#·powerpoint
SenChien16 小时前
C#学习笔记-入门篇
笔记·学习·c#·rider
诙_16 小时前
由C++速通C#
开发语言·c#