public class DapperMySQLHelp
{
#region +ExcuteNonQuery 增、删、改同步操作
///
/// 增、删、改同步操作
/// 2016-10-26
///
/// 实体
/// 链接字符串
/// sql语句
/// 参数
/// true存储过程,false sql语句
/// int
public int ExcuteNonQuery(string connection, string cmd, DynamicParameters param, bool flag = true) where T : class, new()
{
int result = 0;
using (MySqlConnection con = new MySqlConnection(connection))
{
if (flag)
{
result = con.Execute(cmd, param, null, null, CommandType.StoredProcedure);
}
else
{
result = con.Execute(cmd, param, null, null, CommandType.Text);
}
}
return result;
}
#endregion
#region +ExcuteNonQueryAsync 增、删、改异步操作
///
/// 增、删、改异步操作
/// 作者: 逍遥帝君
/// 2016-10-26
///
/// 实体
/// 链接字符串
/// sql语句
/// 参数
/// true存储过程,false sql语句
/// int
public async Task<int> ExcuteNonQueryAsync(string connection, string cmd, DynamicParameters param, bool flag = true) where T : class, new()
{
int result = 0;
using (MySqlConnection con = new MySqlConnection(connection))
{
if (flag)
{
result = await con.ExecuteAsync(cmd, param, null, null, CommandType.StoredProcedure);
}
else
{
result = await con.ExecuteAsync(cmd, param, null, null, CommandType.Text);
}
}
return result;
}
#endregion
#region +ExecuteScalar 同步查询操作
///
/// 同步查询操作
/// 作者: 逍遥帝君
/// 2016-10-26
///
/// 实体
/// 连接字符串
/// sql语句
/// 参数
/// true存储过程,false sql语句
/// object
public object ExecuteScalar(string connection, string cmd, DynamicParameters param, bool flag = true) where T : class, new()
{
object result = null;
using (MySqlConnection con = new MySqlConnection(connection))
{
if (flag)
{
result = con.ExecuteScalar(cmd, param, null, null, CommandType.StoredProcedure);
}
else
{
result = con.ExecuteScalar(cmd, param, null, null, CommandType.Text);
}
}
return result;
}
#endregion
#region +ExecuteScalarAsync 异步查询操作
///
/// 异步查询操作
/// 作者: 逍遥帝君
/// 2016-10-26
///
/// 实体
/// 连接字符串
/// sql语句
/// 参数
/// true存储过程,false sql语句
/// object
public async Task<object> ExecuteScalarAsync(string connection, string cmd, DynamicParameters param, bool flag = true) where T : class, new()
{
object result = null;
using (MySqlConnection con = new MySqlConnection(connection))
{
if (flag)
{
result = await con.ExecuteScalarAsync(cmd, param, null, null, CommandType.StoredProcedure);
}
else
{
result = con.ExecuteScalarAsync(cmd, param, null, null, CommandType.Text);
}
}
return result;
}
#endregion
#region +FindOne 同步查询一条数据
///
/// 同步查询一条数据
/// 作者: 逍遥帝君
/// 2016-10-26
///
/// 实体
/// 连接字符串
/// sql语句
/// 参数
/// true存储过程,false sql语句
/// t
public T FindOne(string connection, string cmd, DynamicParameters param, bool flag = true) where T : class, new()
{
IDataReader dataReader = null;
using (MySqlConnection con = new MySqlConnection(connection))
{
if (flag)
{
dataReader = con.ExecuteReader(cmd, param, null, null, CommandType.StoredProcedure);
}
else
{
dataReader = con.ExecuteReader(cmd, param, null, null, CommandType.Text);
}
if (dataReader == null || !dataReader.Read()) return null;
Type type = typeof(T);
T t = new T();
foreach (var item in type.GetProperties())
{
for (int i = 0; i < dataReader.FieldCount; i++)
{
//属性名与查询出来的列名比较
if (item.Name.ToLower() != dataReader.GetName(i).ToLower()) continue;
var kvalue = dataReader[item.Name];
if (kvalue == DBNull.Value) continue;
item.SetValue(t, kvalue, null);
break;
}
}
return t;
}
}
#endregion
#region +FindOne 异步查询一条数据
///
/// 异步查询一条数据
/// 作者: 逍遥帝君
/// 2016-10-26
///
/// 实体
/// 连接字符串
/// sql语句
/// 参数
/// true存储过程,false sql语句
/// t
public async Task FindOneAsync(string connection, string cmd, DynamicParameters param, bool flag = true) where T : class, new()
{
IDataReader dataReader = null;
using (MySqlConnection con = new MySqlConnection(connection))
{
if (flag)
{
dataReader = await con.ExecuteReaderAsync(cmd, param, null, null, CommandType.StoredProcedure);
}
else
{
dataReader = await con.ExecuteReaderAsync(cmd, param, null, null, CommandType.Text);
}
if (dataReader == null || !dataReader.Read()) return null;
Type type = typeof(T);
T t = new T();
foreach (var item in type.GetProperties())
{
for (int i = 0; i < dataReader.FieldCount; i++)
{
//属性名与查询出来的列名比较
if (item.Name.ToLower() != dataReader.GetName(i).ToLower()) continue;
var kvalue = dataReader[item.Name];
if (kvalue == DBNull.Value) continue;
item.SetValue(t, kvalue, null);
break;
}
}
return t;
}
}
#endregion
#region +FindToList 同步查询数据集合
///
/// 同步查询数据集合
/// 作者: 逍遥帝君
/// 2016-10-26
///
/// 实体
/// 连接字符串
/// sql语句
/// 参数
/// true存储过程,false sql语句
/// t
public IList FindToList(string connection, string cmd, DynamicParameters param, bool flag = true) where T : class, new()
{
IDataReader dataReader = null;
using (MySqlConnection con = new MySqlConnection(connection))
{
if (flag)
{
dataReader = con.ExecuteReader(cmd, param, null, null, CommandType.StoredProcedure);
}
else
{
dataReader = con.ExecuteReader(cmd, param, null, null, CommandType.Text);
}
if (dataReader == null || !dataReader.Read()) return null;
Type type = typeof(T);
List tlist = new List();
while (dataReader.Read())
{
T t = new T();
foreach (var item in type.GetProperties())
{
for (int i = 0; i < dataReader.FieldCount; i++)
{
//属性名与查询出来的列名比较
if (item.Name.ToLower() != dataReader.GetName(i).ToLower()) continue;
var kvalue = dataReader[item.Name];
if (kvalue == DBNull.Value) continue;
item.SetValue(t, kvalue, null);
break;
}
}
if (tlist != null) tlist.Add(t);
}
return tlist;
}
}
#endregion
#region +FindToListAsync 异步查询数据集合
///
/// 异步查询数据集合
/// 作者: 逍遥帝君
/// 2016-10-26
///
/// 实体
/// 连接字符串
/// sql语句
/// 参数
/// true存储过程,false sql语句
/// t
public async Task> FindToListAsync(string connection, string cmd, DynamicParameters param, bool flag = true) where T : class, new()
{
IDataReader dataReader = null;
using (MySqlConnection con = new MySqlConnection(connection))
{
if (flag)
{
dataReader = await con.ExecuteReaderAsync(cmd, param, null, null, CommandType.StoredProcedure);
}
else
{
dataReader = await con.ExecuteReaderAsync(cmd, param, null, null, CommandType.Text);
}
if (dataReader == null || !dataReader.Read()) return null;
Type type = typeof(T);
List tlist = new List();
while (dataReader.Read())
{
T t = new T();
foreach (var item in type.GetProperties())
{
for (int i = 0; i < dataReader.FieldCount; i++)
{
//属性名与查询出来的列名比较
if (item.Name.ToLower() != dataReader.GetName(i).ToLower()) continue;
var kvalue = dataReader[item.Name];
if (kvalue == DBNull.Value) continue;
item.SetValue(t, kvalue, null);
break;
}
}
if (tlist != null) tlist.Add(t);
}
return tlist;
}
}
#endregion
#region +FindToList 同步查询数据集合
///
/// 同步查询数据集合
/// 作者: 逍遥帝君
/// 2016-10-26
///
/// 实体
/// 连接字符串
/// sql语句
/// 参数
/// true存储过程,false sql语句
/// t
public IList FindToListAsPage(string connection, string cmd, DynamicParameters param, bool flag = true) where T : class, new()
{
IDataReader dataReader = null;
using (MySqlConnection con = new MySqlConnection(connection))
{
if (flag)
{
dataReader = con.ExecuteReader(cmd, param, null, null, CommandType.StoredProcedure);
}
else
{
dataReader = con.ExecuteReader(cmd, param, null, null, CommandType.Text);
}
if (dataReader == null || !dataReader.Read()) return null;
Type type = typeof(T);
List tlist = new List();
while (dataReader.Read())
{
T t = new T();
foreach (var item in type.GetProperties())
{
for (int i = 0; i < dataReader.FieldCount; i++)
{
//属性名与查询出来的列名比较
if (item.Name.ToLower() != dataReader.GetName(i).ToLower()) continue;
var kvalue = dataReader[item.Name];
if (kvalue == DBNull.Value) continue;
item.SetValue(t, kvalue, null);
break;
}
}
if (tlist != null) tlist.Add(t);
}
return tlist;
}
}
#endregion
#region +FindToListByPage 同步分页查询数据集合
///
/// 同步分页查询数据集合
/// 作者: 逍遥帝君
/// 2016-10-26
///
/// 实体
/// 连接字符串
/// sql语句
/// 参数
/// true存储过程,false sql语句
/// t
public IList FindToListByPage(string connection, string cmd, DynamicParameters param, bool flag = true) where T : class, new()
{
IDataReader dataReader = null;
using (MySqlConnection con = new MySqlConnection(connection))
{
if (flag)
{
dataReader = con.ExecuteReader(cmd, param, null, null, CommandType.StoredProcedure);
}
else
{
dataReader = con.ExecuteReader(cmd, param, null, null, CommandType.Text);
}
if (dataReader == null || !dataReader.Read()) return null;
Type type = typeof(T);
List tlist = new List();
while (dataReader.Read())
{
T t = new T();
foreach (var item in type.GetProperties())
{
for (int i = 0; i < dataReader.FieldCount; i++)
{
//属性名与查询出来的列名比较
if (item.Name.ToLower() != dataReader.GetName(i).ToLower()) continue;
var kvalue = dataReader[item.Name];
if (kvalue == DBNull.Value) continue;
item.SetValue(t, kvalue, null);
break;
}
}
if (tlist != null) tlist.Add(t);
}
return tlist;
}
}
#endregion
#region +FindToListByPageAsync 异步分页查询数据集合
///
/// 异步分页查询数据集合
/// 作者: 逍遥帝君
/// 2016-10-26
///
/// 实体
/// 连接字符串
/// sql语句
/// 参数
/// true存储过程,false sql语句
/// t
public async Task> FindToListByPageAsync(string connection, string cmd, DynamicParameters param, bool flag = true) where T : class, new()
{
IDataReader dataReader = null;
using (MySqlConnection con = new MySqlConnection(connection))
{
if (flag)
{
dataReader = await con.ExecuteReaderAsync(cmd, param, null, null, CommandType.StoredProcedure);
}
else
{
dataReader = await con.ExecuteReaderAsync(cmd, param, null, null, CommandType.Text);
}
if (dataReader == null || !dataReader.Read()) return null;
Type type = typeof(T);
List tlist = new List();
while (dataReader.Read())
{
T t = new T();
foreach (var item in type.GetProperties())
{
for (int i = 0; i < dataReader.FieldCount; i++)
{
//属性名与查询出来的列名比较
if (item.Name.ToLower() != dataReader.GetName(i).ToLower()) continue;
var kvalue = dataReader[item.Name];
if (kvalue == DBNull.Value) continue;
item.SetValue(t, kvalue, null);
break;
}
}
if (tlist != null) tlist.Add(t);
}
return tlist;
}
}
#endregion
}