161 lines
5.7 KiB
C#
161 lines
5.7 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 执行增、删、改的方法
|
|
/// </summary>
|
|
/// <param name="sql">预计执行的非SELECT查询语句</param>
|
|
/// <param name="param">SQL语句中的可变参数</param>
|
|
/// <returns>返回受影响的行数</returns>
|
|
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<string> sqlList, List<MySqlParameter[]> 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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|