自用MySql数据库工具类
需要先在nuget上搜索并安装 MySql.Data 包
using MySql.Data.MySqlClient; using System; using System.Collections.Generic; using System.Data; public class DBUtil { private static string connectstring = "data source=IP地址;database=数据库名;user id=用户名;password=密码;SslMode=None;pooling=true;charset=utf8;"; public static DataSet GetData(string sql) { DataSet ds = new DataSet(); MySqlConnection conn = new MySqlConnection(connectstring); try { conn.Open(); MySqlDataAdapter da = new MySqlDataAdapter(sql, conn); da.Fill(ds); } catch (Exception ex) { } finally { conn.Close(); } return ds; } /// <summary> /// 带参数查询 /// </summary> /// <param name="sql"></param> /// <param name="dic_args">sql语句中参数前面带@符号</param> /// <returns></returns> public static DataSet GetData(string sql, Dictionary<string, object> dic_args) { DataSet ds = new DataSet(); MySqlConnection conn = new MySqlConnection(connectstring); try { conn.Open(); MySqlCommand cmd = new MySqlCommand(sql, conn); if (dic_args != null && dic_args.Count != 0) { Dictionary<string, object>.Enumerator it = dic_args.GetEnumerator(); while (it.MoveNext()) { cmd.Parameters.AddWithValue(it.Current.Key, it.Current.Value); } } MySqlDataAdapter da = new MySqlDataAdapter(cmd); da.Fill(ds); } catch (Exception ex) { } finally { conn.Close(); } return ds; } public class SqlCommandInfo { public string Sql { get; set; } public Dictionary<string, object> Parameters { get; set; } = new Dictionary<string, object>(); } /// <summary> /// 执行多条sql语句(带事务) /// </summary> /// <param name="sql_args"></param> public static bool SetData(List<SqlCommandInfo> sql_args) { MySqlConnection conn = new MySqlConnection(connectstring); conn.Open(); MySqlTransaction tran = conn.BeginTransaction(); try { if (sql_args == null || sql_args.Count == 0) { return false; } foreach (SqlCommandInfo sql_cmd in sql_args) { MySqlCommand cmd = new MySqlCommand(sql_cmd.Sql, conn); if (sql_cmd.Parameters != null && sql_cmd.Parameters.Count != 0) { Dictionary<string, object>.Enumerator it2 = sql_cmd.Parameters.GetEnumerator(); while (it2.MoveNext()) { cmd.Parameters.AddWithValue(it2.Current.Key, it2.Current.Value); } } cmd.ExecuteNonQuery(); } } catch (Exception ex) { tran.Rollback(); conn.Close(); return false; } finally { if (conn.State != ConnectionState.Closed) { tran.Commit(); conn.Close(); } } return true; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?