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