XIKEW.COM - 公读宝典 - NetCore MySql简明教程 - 公读宝典, - 记录一下C#的Mysql驱动MySql相关的方法

NetCore MySql简明教程
NETCORE MYSQL 5/4/2020 10:09:40 PM 阅读:2

Mysql

记录一下C#的Mysql驱动MySql相关的方法

准备工作

  • ~~引入Nuget包 MySql.Data~~
  • 引入Nuget包 MySqlConnector 相关连接

MySqlConnector 性能对比

image image

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 对象常用的三个执行方法

  1. 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() ;
  1. ExecuteNonQuery 调用ExecuteNonQuery来插入和删除数据。
string sql = "INSERT INTO writer value(...)" ;
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.ExecuteNonQuery();
  1. ExecuteScalar 仅返回单个值
sql = "SELECT COUNT(*) FROM writer;"  ;
MySqlCommand cmd = new MySqlCommand(sql, conn) ;
object result = cmd.ExecuteScalar();
if(result != null)
{
    int r = Convert.ToInt32(result) ;
    ...
}

回顾步骤思路

  1. 使用账号密码等连接数据库创建 MySqlConnection 对象
  2. 将命令以及连接对象传给命令构造器 MySqlCommand
  3. 调用命令构造器的执行方法如 executeReader