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();
相关推荐
江山如画,佳人北望2 小时前
C#程序入门
开发语言·windows·c#
与火星的孩子对话3 小时前
Unity进阶课程【六】Android、ios、Pad 终端设备打包局域网IP调试、USB调试、性能检测、控制台打印日志等、C#
android·unity·ios·c#·ip
future14123 小时前
C#每日学习日记
java·学习·c#
军训猫猫头7 小时前
1.如何对多个控件进行高效的绑定 C#例子 WPF例子
开发语言·算法·c#·.net
葬歌倾城1 天前
JSON的缩进格式方式和紧凑格式方式
c#·json
Eiceblue1 天前
使用 C# 发送电子邮件(支持普通文本、HTML 和附件)
开发语言·c#·html·visual studio
小小小小王王王1 天前
hello判断
开发语言·c#
金增辉1 天前
基于C#的OPCServer应用开发,引用WtOPCSvr.dll
c#
future14121 天前
C#学习日记
开发语言·学习·c#
傻啦嘿哟1 天前
Python 办公实战:用 python-docx 自动生成 Word 文档
开发语言·c#