C#如何操作数据库
- 前言
- 1、查询操作
- 2、增删改操作
- 3、需要返回id主键的sql语句执行
前言
本文主要交代如何通过引用
using MySql.Data.MySqlClient;
来操作数据库
需要导入.dll文件
例如:在本地Mysql下载目录下->Connecter NET 8.0->Assemblies->net5.0->MySql.Data.dll
请根据实际情况,灵活选择.dll文件的版本
1、查询操作
//连接数据库字符串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、增删改操作
增删改操作是类似的,此处用增加操作举例
//连接字符串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()方法即可
int id = (int)cmd.ExecuteScalar();