cs
复制代码
using MySqlConnector;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Reflection;
namespace my_namespace
{
public sealed class MySqlHelper
{
//public static readonly string connectionString = AppSettings.Configuration["ConnectionStrings:MySql"];
public static readonly string connectionString = CustomConfigManager.GetConfig("ConnectionString: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();
}
}
}
public static int INSERT(string commandText, params MySqlParameter[] commandParameters)
{
return ExecuteNonQuery(commandText, commandParameters);
}
public static int UPDATE(string commandText, params MySqlParameter[] commandParameters)
{
return ExecuteNonQuery(commandText, commandParameters);
}
public static int DELETE(string commandText, params MySqlParameter[] commandParameters)
{
return ExecuteNonQuery(commandText, commandParameters);
}
#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;
}
}
}
}
public static List<T> SELECT<T>(string commandText, params MySqlParameter[] commandParameters)
{
return GetEntities<T>(commandText, commandParameters);
}
#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;
}
}
}
}
public static T SELECT_TOP1<T>(string commandText, params MySqlParameter[] commandParameters)
{
return GetEntity<T>(commandText, commandParameters);
}
#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);
}
public static MySqlDataReader GetDataReader(string commandText, params MySqlParameter[] commandParameters)
{
return ExecuteReader(commandText, commandParameters);
}
#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();
}
}
}
/// <summary>
/// 获取第一行第一列数据
/// </summary>
/// <param name="commandText"></param>
/// <param name="commandParameters"></param>
/// <returns></returns>
public static object GetScalar(string commandText, params MySqlParameter[] commandParameters)
{
return ExecuteScalar(commandText, commandParameters);
}
#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;
}
}
/// <summary>
/// 获取多行select的集合
/// 即多个DataTable的集合
/// </summary>
/// <param name="commandText"></param>
/// <param name="commandParameters"></param>
/// <returns></returns>
public static DataSet GetDataSet(string commandText, params MySqlParameter[] commandParameters)
{
return ExecuteDataSet(commandText, commandParameters);
}
#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;
}
}
public static DataTable GetDataTable(string commandText, params MySqlParameter[] commandParameters)
{
return ExecuteDataTable(commandText, commandParameters);
}
public static DataTable SELECT(string commandText, params MySqlParameter[] commandParameters)
{
return ExecuteDataTable(commandText, commandParameters);
}
#endregion ExecuteDataTable
#region ExecuteTransaction
/// <summary>
/// 事物
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
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;
}
}
}
}
/// <summary>
/// 事物
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
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
}
}
cs
复制代码
using SqlSugar;
using System;
namespace my_namespace
{
public class SqlSugarHelper
{
public string _connectionString = CustomConfigManager.GetConfig("ConnectionString:MySql");//获取SQL连接字符串
public SqlSugarClient _db = null;
/// <summary>
/// 构造函数(初始化)
/// 调用方法:
/// SqlSugarHelper sugar = new SqlSugarHelper();
/// var db = sugar.SqlClient();
/// var user = db.Queryable<Userinfo>().Where(a => a.Name.Equals(uid) && a.PWD.Equals(pwd)).ToList().FirstOrDefault();
/// </summary>
public SqlSugarClient SqlClient()
{
if (string.IsNullOrEmpty(_connectionString))
throw new ArgumentNullException("数据库连接字符串为空");
try
{
_db = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = _connectionString,//数据库连接字符串,见UI的appsettings.json内配置
DbType = DbType.MySql,//数据库类型
IsAutoCloseConnection = true,//自动断开连接
MoreSettings = new ConnMoreSettings()
{
IsWithNoLockQuery = true,//为true表式查询的时候默认会加上.With(SqlWith.NoLock),
IsAutoRemoveDataCache = true//为true自动清除缓存
}
});
//输入最终SQL语句...
_db.Aop.OnLogExecuting = (sql, pars) =>
{
var s1 = sql;//断点打在这里看内部生成的sql语句...
};
return _db;
}
catch (Exception ex)
{
throw new ArgumentNullException(ex.Message);
}
#region
//SqlSugarClient _db = new SqlSugarClient(new ConnectionConfig()
//{
// ConnectionString = _connectionString,
// DbType = SqlSugar.DbType.MySql,
// IsAutoCloseConnection = true
//},
// db =>
// {
// db.Aop.OnLogExecuting = (sql, pars) =>
// {
// };
// });
//return _db;
#endregion
}
}
}