以VS为例
安装与导入
-
VS - 项目 - 管理NuGet程序包,在浏览里搜索MySql.Data并进行安装
-
在C#文件里加入using MySql.Data.MySqlClient
Helper类
public class Helper
{
// 增、删、改操作,返回影响数据行数
public static int ExecuteNonQuery(string sql,params MySqlParameter[] parameters)
{
string connstr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
MySqlConnection conn = new MySqlConnection(connstr);
int res=-1;
try
{
conn.Open();
Console.WriteLine("MySqlLog:已经建立连接");
MySqlCommand comm = new MySqlCommand(sql,conn);
if (parameters.Length > 0)
comm.Parameters.AddRange(parameters);
res = comm.ExecuteNonQuery();
Console.WriteLine("MySqlLog: change lines " + res);
}
catch (MySqlException ex)
{
Console.WriteLine("MySqlLog:"+ex.Message);
}
finally
{
conn.Close();
}
return res;
}
// 返回查询到的第一个值,以Object的形式返回
public static object ExecuteScalar(string sql, params MySqlParameter[] parameters)
{
string connstr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
MySqlConnection conn = new MySqlConnection(connstr);
Object res = null;
try
{
conn.Open();
Console.WriteLine("MySqlLog:已经建立连接");
MySqlCommand comm = new MySqlCommand(sql, conn);
if (parameters.Length > 0)
comm.Parameters.AddRange(parameters);
object obj = comm.ExecuteScalar();
Console.WriteLine("MySqlLog: first selected is " + res.ToString());
}
catch (MySqlException ex)
{
Console.WriteLine("MySqlLog:" + ex.Message);
}
finally
{
conn.Close();
}
return res;
}
// 返回DataReader,通过while(res.Read())获取每一行数据,res["列名"]获取单项数据
public static MySqlDataReader ExecuteReader(string sql, params MySqlParameter[] parameters)
{
string connstr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
MySqlConnection conn = new MySqlConnection(connstr);
MySqlDataReader res = null;
try
{
conn.Open();
Console.WriteLine("MySqlLog:已经建立连接");
MySqlCommand comm = new MySqlCommand(sql, conn);
if (parameters.Length > 0)
comm.Parameters.AddRange(parameters);
res = comm.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (MySqlException ex)
{
Console.WriteLine("MySqlLog:" + ex.Message);
}
return res;
}
// 返回查询的表格,可用来填充DataGridView.DataSource
public static DataTable ExecuteDataTable(string sql, params MySqlParameter[] parameters)
{
string connstr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
MySqlConnection conn = new MySqlConnection(connstr);
DataTable res = new DataTable();
try
{
conn.Open();
Console.WriteLine("MySqlLog:已经建立连接");
MySqlDataAdapter sda = new MySqlDataAdapter(sql, conn);
if (parameters.Length > 0)
sda.SelectCommand.Parameters.AddRange(parameters);
sda.Fill(res);
}
catch (MySqlException ex)
{
Console.WriteLine("MySqlLog:" + ex.Message);
}
finally
{
conn.Close();
}
return res;
}
}
使用举例
调用:
string sql = "UPDATE user SET pwd = @pwd WHERE Id=@Id";
MySqlParameter[] _ =
{
new MySqlParameter("@Id", ID),
new MySqlParameter("@pwd", Password)
};
int res=Helper.ExecuteNonQuery(sql, _);
dataReader使用
string sql = "SELECT * FROM user";
using (MySqlDataReader sdr = Helper.ExecuteReader(sql))
{
while (sdr.Read())
{
User d = new User();
d.Id = sdr["Id"].ToString();
d.Name = sdr["Name"].ToString();
L.Add(d);
}
sdr.Close();
}