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