using MySqlConnector; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CreateAccountBookConsole { public class SqlHelper { public static DataSet ExecuteQuery(string sql, params MySqlParameter[] param) { DataSet ds = new DataSet(); using (MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["dbConnect"].ConnectionString)) { try { conn.Open(); using (MySqlCommand cmd = new MySqlCommand(sql, conn)) { if (param != null) cmd.Parameters.AddRange(param); MySqlDataAdapter da = new MySqlDataAdapter(cmd); da.Fill(ds); if (param != null) cmd.Parameters.Clear(); return ds; } } catch (Exception ex) { throw ex; } } } public static int ExecuteScalar(string sql, params MySqlParameter[] param) { using (MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["dbConnect"].ConnectionString)) { try { conn.Open(); MySqlCommand cmd = new MySqlCommand(sql, conn); if (param != null) cmd.Parameters.AddRange(param); int affectCount = int.Parse(cmd.ExecuteScalar().ToString()); if (param != null) cmd.Parameters.Clear();//添加这一句即可解决此问题 return affectCount; } catch (Exception ex) { throw ex; } } } /// /// 执行增、删、改的方法 /// /// 预计执行的非SELECT查询语句 /// SQL语句中的可变参数 /// 返回受影响的行数 public static int ExecuteNonQuery(string sql, params MySqlParameter[] param) { using (MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["dbConnect"].ConnectionString)) { try { conn.Open(); MySqlCommand cmd = new MySqlCommand(sql, conn); if (param != null) cmd.Parameters.AddRange(param); int affectCount = cmd.ExecuteNonQuery(); if (param != null) cmd.Parameters.Clear();//添加这一句即可解决此问题 return affectCount; } catch (Exception ex) { throw ex; } } } public static long ExecuteNonQueryAndGetLastInsertedId(string sql, params MySqlParameter[] param) { using (MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["dbConnect"].ConnectionString)) { try { conn.Open(); MySqlCommand cmd = new MySqlCommand(sql, conn); if (param != null) cmd.Parameters.AddRange(param); int affectCount = cmd.ExecuteNonQuery(); if (param != null) cmd.Parameters.Clear(); return cmd.LastInsertedId; } catch (Exception ex) { throw ex; } } } public static bool ExecuteNonQueryList(List sqlList, List paramList) { using (MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["dbConnect"].ConnectionString)) { try { conn.Open(); MySqlTransaction transaction = conn.BeginTransaction(); MySqlCommand cmd = conn.CreateCommand(); cmd.Transaction = transaction; try { for (int i = 0; i < sqlList.Count; i++) { cmd.CommandText = sqlList[i]; cmd.Parameters.AddRange(paramList[i]); cmd.ExecuteNonQuery(); cmd.Parameters.Clear();//添加这一句即可解决此问题 } transaction.Commit(); return true; } catch (Exception ex) { //logs.Log.WriteLine("错误原因:" + ex.Message); try { //logs.Log.WriteLine("事物回滚"); transaction.Rollback();//出现错误就回滚... } catch (Exception ex1) { throw ex1; } throw ex; } } catch (Exception ex) { throw ex; } } } } }