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;
}
}
}
}
}