记录一下C#的Mysql驱动MySql相关的方法
准备工作
- ~~引入Nuget包
MySql.Data
~~ - 引入Nuget包
MySqlConnector
相关连接
MySqlConnector 性能对比
MySqlConnection 对象
MySqlConnection类是用来连接MySQL数据库的,它接收一个连接用的字符串,返回一个MySqlConnection对象。
string connStr = "server = localhost; user = root; database = world; port = 3306; password = ***"
MySqlConnection conn = new MySqlConnection(connStr) ;
try{
conn.Open();
}
catch(Exception ex){
Console.WriteLine(ex.ToString());
}
MySqlCommand 对象
MySqlCommand对象实例化时接收两个参数:SQL语句(命令)以及和数据库的连接,即MySqlConnection连接对象。
string sql = "SELECT * from writer;" ;
MySqlCommand cmd = new MySqlCommand(sql, conn) ;
MySqlCommand 对象常用的三个执行方法
- ExecuteReader 调用ExecuteReader方法来查询数据库。返回一个包含着查询结果的MySqlDataReader对象。
MysqlCommand cmd = new MySqlCommand(sql, conn) ;
MySqlDataReader rdr = cmd.ExecuteReader();
while(rdr.Read())
{
string rowStr = "";
for(var i = 0; i < rdr.FieldCount; i++)
{
rowStr += "," + rdr.GetName(i) + ":" + rdr[i];
}
Console.WriteLine(rowStr);
}
rdr.Close() ;
- ExecuteNonQuery 调用ExecuteNonQuery来插入和删除数据。
string sql = "INSERT INTO writer value(...)" ;
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.ExecuteNonQuery();
- ExecuteScalar 仅返回单个值
sql = "SELECT COUNT(*) FROM writer;" ;
MySqlCommand cmd = new MySqlCommand(sql, conn) ;
object result = cmd.ExecuteScalar();
if(result != null)
{
int r = Convert.ToInt32(result) ;
...
}
回顾步骤思路
- 使用账号密码等连接数据库创建 MySqlConnection 对象
- 将命令以及连接对象传给命令构造器 MySqlCommand
- 调用命令构造器的执行方法如 executeReader