.NetCore 3.1 MySqlHelper

    public sealed class MySqlHelper
    {
        public static readonly string connectionString = AppSettings.Configuration["ConnectionStrings:MySql"];

        #region ExecuteMySqlScript

        public static int ExecuteMySqlScript(string path)
        {
            using (MySqlConnection mySqlConnection = new MySqlConnection(connectionString))
            {
                using (MySqlCommand mySqlCommand = new MySqlCommand())
                {
                    using (StreamReader streamReader = new StreamReader(path, System.Text.Encoding.UTF8))
                    {
                        mySqlCommand.Connection = mySqlConnection;
                        mySqlCommand.CommandText = streamReader.ReadToEnd();
                        mySqlConnection.Open();
  
              return mySqlCommand.ExecuteNonQuery(); } } } } #endregion ExecuteMySqlScript #region ExecuteNonQuery public static int ExecuteNonQuery(string commandText, params MySqlParameter[] commandParameters) { using (MySqlConnection mySqlConnection = new MySqlConnection(connectionString)) { using (MySqlCommand mySqlCommand = new MySqlCommand(commandText, mySqlConnection)) { if (commandParameters != null) { mySqlCommand.Parameters.Clear(); mySqlCommand.Parameters.AddRange(commandParameters); } mySqlConnection.Open(); return mySqlCommand.ExecuteNonQuery(); } } } #endregion ExecuteNonQuery #region GetEntities public static List<T> GetEntities<T>(string commandText, params MySqlParameter[] commandParameters) { using (MySqlConnection mySqlConnection = new MySqlConnection(connectionString)) { using (MySqlCommand mySqlCommand = new MySqlCommand(commandText, mySqlConnection)) { mySqlConnection.Open(); if (commandParameters != null) { mySqlCommand.Parameters.Clear(); mySqlCommand.Parameters.AddRange(commandParameters); } using (MySqlDataReader dataReader = mySqlCommand.ExecuteReader()) { List<T> list = new List<T>(); while (dataReader.Read()) { List<string> field = new List<string>(dataReader.FieldCount); for (int i = 0; i < dataReader.FieldCount; i++) { field.Add(dataReader.GetName(i).ToLower()); } T model = Activator.CreateInstance<T>(); foreach (PropertyInfo property in model.GetType().GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Instance)) { if (field.Contains(property.Name.ToLower())) { property.SetValue(model, Convert.ChangeType(dataReader[property.Name], property.PropertyType), null); } } list.Add(model); } return list; } } } } #endregion GetEntities #region GetEntity public static T GetEntity<T>(string commandText, params MySqlParameter[] commandParameters) { using (MySqlConnection mySqlConnection = new MySqlConnection(connectionString)) { using (MySqlCommand mySqlCommand = new MySqlCommand(commandText, mySqlConnection)) { mySqlConnection.Open(); if (commandParameters != null) { mySqlCommand.Parameters.Clear(); mySqlCommand.Parameters.AddRange(commandParameters); } using (MySqlDataReader dataReader = mySqlCommand.ExecuteReader()) { T model = Activator.CreateInstance<T>(); if (dataReader.Read()) { List<string> field = new List<string>(dataReader.FieldCount); for (int i = 0; i < dataReader.FieldCount; i++) { field.Add(dataReader.GetName(i).ToLower()); } foreach (PropertyInfo property in model.GetType().GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Instance)) { if (field.Contains(property.Name.ToLower())) { property.SetValue(model, Convert.ChangeType(dataReader[property.Name], property.PropertyType), null); } } } return model; } } } } #endregion GetEntity #region ExecuteReader public static MySqlDataReader ExecuteReader(string commandText, params MySqlParameter[] commandParameters) { MySqlConnection mySqlConnection = new MySqlConnection(connectionString); MySqlCommand mySqlCommand = new MySqlCommand(commandText, mySqlConnection); if (commandParameters != null) { mySqlCommand.Parameters.Clear(); mySqlCommand.Parameters.AddRange(commandParameters); } mySqlConnection.Open(); return mySqlCommand.ExecuteReader(CommandBehavior.CloseConnection); } #endregion ExecuteReader #region ExecuteScalar public static object ExecuteScalar(string commandText, params MySqlParameter[] commandParameters) { using (MySqlConnection mySqlConnection = new MySqlConnection(connectionString)) { using (MySqlCommand mySqlCommand = new MySqlCommand(commandText, mySqlConnection)) { if (commandParameters != null) { mySqlCommand.Parameters.Clear(); mySqlCommand.Parameters.AddRange(commandParameters); } mySqlConnection.Open(); return mySqlCommand.ExecuteScalar(); } } } #endregion ExecuteScalar #region ExecuteDataSet public static DataSet ExecuteDataSet(string commandText, params MySqlParameter[] commandParameters) { using (MySqlDataAdapter mySqlDataAdapter = new MySqlDataAdapter(commandText, connectionString)) { DataSet dataSet = new DataSet(); if (commandParameters != null) { mySqlDataAdapter.SelectCommand.Parameters.Clear(); mySqlDataAdapter.SelectCommand.Parameters.AddRange(commandParameters); } mySqlDataAdapter.Fill(dataSet); return dataSet; } } #endregion ExecuteDataSet #region ExecuteDataTable public static DataTable ExecuteDataTable(string commandText, params MySqlParameter[] commandParameters) { using (MySqlDataAdapter mySqlDataAdapter = new MySqlDataAdapter(commandText, connectionString)) { DataTable dataTable = new DataTable(); if (commandParameters != null) { mySqlDataAdapter.SelectCommand.Parameters.Clear(); mySqlDataAdapter.SelectCommand.Parameters.AddRange(commandParameters); } mySqlDataAdapter.Fill(dataTable); return dataTable; } } #endregion ExecuteDataTable #region ExecuteTransaction public static int ExecuteTransaction(List<string> list) { using (MySqlConnection mySqlConnection = new MySqlConnection(connectionString)) { using (MySqlCommand mySqlCommand = new MySqlCommand()) { mySqlConnection.Open(); MySqlTransaction mySqlTransaction = mySqlConnection.BeginTransaction(); mySqlCommand.Connection = mySqlConnection; mySqlCommand.Transaction = mySqlTransaction; try { int result = 0; foreach (var item in list) { mySqlCommand.CommandText = item; result += mySqlCommand.ExecuteNonQuery(); } mySqlTransaction.Commit(); return result; } catch (System.Exception) { mySqlTransaction.Rollback(); return 0; } } } } public static int ExecuteTransaction(List<KeyValuePair<string, MySqlParameter[]>> list) { using (MySqlConnection mySqlConnection = new MySqlConnection(connectionString)) { using (MySqlCommand mySqlCommand = new MySqlCommand()) { mySqlConnection.Open(); MySqlTransaction mySqlTransaction = mySqlConnection.BeginTransaction(); mySqlCommand.Connection = mySqlConnection; mySqlCommand.Transaction = mySqlTransaction; try { int result = 0; foreach (var item in list) { mySqlCommand.CommandText = item.Key; mySqlCommand.Parameters.Clear(); mySqlCommand.Parameters.AddRange(item.Value); result += mySqlCommand.ExecuteNonQuery(); } mySqlTransaction.Commit(); return result; } catch (System.Exception) { mySqlTransaction.Rollback(); return 0; } } } } #endregion ExecuteTransaction }

 

posted @ 2020-05-20 00:10  仿佛若有光;  阅读(916)  评论(0编辑  收藏  举报