C# 连接MYSQL指南,附带增删改查操作代码

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

猜你喜欢

转载自blog.csdn.net/jk_chen_acmer/article/details/106841424