.net core 基于 dapper 扩展的操作 mysql
2017-06-19 11:36
387 查看
public class MySQLDBHelper
{
private string connString = "";
public MySQLDBHelper() { }
public MySQLDBHelper(string connStr)
{
connString = connStr;
}
public IDbConnection Connection()
{
var conn = new MySqlConnection(connString);
conn.Open();
return conn;
}
#region Dapper
#region +ExcuteNonQuery 增、删、改同步操作
/// <summary>
/// 增、删、改同步操作
/// </summary>
/// <param name="cmd">sql语句</param>
/// <param name="param">参数</param>
/// <param name="flag">true存储过程,false sql语句</param>
/// <returns>int</returns>
public int ExcuteNonQuery(string cmd, object param=null, bool flag = false)
{
string connection = connString;
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 +QueryData 同步查询数据集合
/// <summary>
/// 同步查询数据集合
/// </summary>
/// <param name="cmd">sql语句</param>
/// <param name="param">参数</param>
/// <param name="flag">true存储过程,false sql语句</param>
/// <returns>t</returns>
public List<Dictionary<String,object>> QueryData(string cmd, object param=null, bool flag = false)
{
string connection = connString;
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);
}
List<Dictionary<String, object>> list = new List<Dictionary<string, object>>();
Dictionary<String, object> dic = null;
string colName = "";
while (dataReader.Read())
{
dic = new Dictionary<string, object>();
for (int i = 0; i < dataReader.FieldCount; i++)
{
colName = dataReader.GetName(i);
dic.Add(colName, dataReader[colName]);
}
if (dic.Keys.Count > 0)
{
list.Add(dic);
}
}
return list;
}
}
#endregion
#region +ExecuteScalar 同步查询操作
/// <summary>
/// 同步查询操作
/// </summary>
/// <param name="cmd">sql语句</param>
/// <param name="param">参数</param>
/// <param name="flag">true存储过程,false sql语句</param>
/// <returns>object</returns>
public object ExecuteScalar(string cmd,object param=null, bool flag = false)
{
string connection = connString;
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 +QueryPage 同步分页查询操作
/// <summary>
/// 同步分页查询操作
/// </summary>
/// <param name="sql">查询语句</param>
/// <param name="orderBy">排序字段</param>
/// <param name="pageIndex">当前页码</param>
/// <param name="pageSize">页面容量</param>
/// <param name="count">总条数</param>
/// <param name="param">参数</param>
/// <param name="strWhere">条件</param>
/// <returns>返回结果的数据集合</returns>
public List<Dictionary<string, Object>> QueryPage(string sql, string orderBy, int pageIndex, int pageSize, out int count, object param = null, string strWhere = "")
{
count = 0;
List<Dictionary<String, Object>> list = new List<Dictionary<string, object>>();
if (sql.Contains("where"))
{
sql = sql + strWhere;
}
else
{
sql = sql + " where 1=1 " + strWhere;
}
string strSQL = "SELECT (@i:=@i+1) AS row_id,tab.* FROM (" + sql + ") AS TAB,(SELECT @i:=0) AS it ORDER BY " + orderBy + " LIMIT " + (pageIndex - 1) + "," + pageSize;
list = QueryData(strSQL, param, false);
string strCount = "SELECT count(*) FROM (" + sql + ") tcount";
count = Convert.ToInt32(ExecuteScalar(strCount));
return list;
}
#endregion
#endregion
}
{
private string connString = "";
public MySQLDBHelper() { }
public MySQLDBHelper(string connStr)
{
connString = connStr;
}
public IDbConnection Connection()
{
var conn = new MySqlConnection(connString);
conn.Open();
return conn;
}
#region Dapper
#region +ExcuteNonQuery 增、删、改同步操作
/// <summary>
/// 增、删、改同步操作
/// </summary>
/// <param name="cmd">sql语句</param>
/// <param name="param">参数</param>
/// <param name="flag">true存储过程,false sql语句</param>
/// <returns>int</returns>
public int ExcuteNonQuery(string cmd, object param=null, bool flag = false)
{
string connection = connString;
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 +QueryData 同步查询数据集合
/// <summary>
/// 同步查询数据集合
/// </summary>
/// <param name="cmd">sql语句</param>
/// <param name="param">参数</param>
/// <param name="flag">true存储过程,false sql语句</param>
/// <returns>t</returns>
public List<Dictionary<String,object>> QueryData(string cmd, object param=null, bool flag = false)
{
string connection = connString;
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);
}
List<Dictionary<String, object>> list = new List<Dictionary<string, object>>();
Dictionary<String, object> dic = null;
string colName = "";
while (dataReader.Read())
{
dic = new Dictionary<string, object>();
for (int i = 0; i < dataReader.FieldCount; i++)
{
colName = dataReader.GetName(i);
dic.Add(colName, dataReader[colName]);
}
if (dic.Keys.Count > 0)
{
list.Add(dic);
}
}
return list;
}
}
#endregion
#region +ExecuteScalar 同步查询操作
/// <summary>
/// 同步查询操作
/// </summary>
/// <param name="cmd">sql语句</param>
/// <param name="param">参数</param>
/// <param name="flag">true存储过程,false sql语句</param>
/// <returns>object</returns>
public object ExecuteScalar(string cmd,object param=null, bool flag = false)
{
string connection = connString;
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 +QueryPage 同步分页查询操作
/// <summary>
/// 同步分页查询操作
/// </summary>
/// <param name="sql">查询语句</param>
/// <param name="orderBy">排序字段</param>
/// <param name="pageIndex">当前页码</param>
/// <param name="pageSize">页面容量</param>
/// <param name="count">总条数</param>
/// <param name="param">参数</param>
/// <param name="strWhere">条件</param>
/// <returns>返回结果的数据集合</returns>
public List<Dictionary<string, Object>> QueryPage(string sql, string orderBy, int pageIndex, int pageSize, out int count, object param = null, string strWhere = "")
{
count = 0;
List<Dictionary<String, Object>> list = new List<Dictionary<string, object>>();
if (sql.Contains("where"))
{
sql = sql + strWhere;
}
else
{
sql = sql + " where 1=1 " + strWhere;
}
string strSQL = "SELECT (@i:=@i+1) AS row_id,tab.* FROM (" + sql + ") AS TAB,(SELECT @i:=0) AS it ORDER BY " + orderBy + " LIMIT " + (pageIndex - 1) + "," + pageSize;
list = QueryData(strSQL, param, false);
string strCount = "SELECT count(*) FROM (" + sql + ") tcount";
count = Convert.ToInt32(ExecuteScalar(strCount));
return list;
}
#endregion
#endregion
}
相关文章推荐
- .NET Core 使用Dapper 操作MySQL
- .NET Core 使用Dapper 操作MySQL
- FeedBurner:基于MySQL和JAVA的可扩展Web应用
- 基于MySQL的高可用可扩展架构探讨-原文已发表于《程序员》
- PHP数据库编程-使用mysql扩展库对数据库操作
- php基础系列:从用户登录处理程序学习mysql扩展基本操作
- PHP mysql 扩展库 操作mysql数据库步骤
- FeedBurner:基于MySQL和JAVA的可扩展Web应用
- 基于php和mysql的简单的dao类实现crud操作功能
- 基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
- 基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
- 基于MySQL的高可用可扩展架构探讨
- Dappers : 基于Dapper.net 扩展的Dao
- 操作数据库(MySql)表的扩展方法类,对单表可以进行增、删、改、查。
- 基于 MySQL的高可用可扩展架构探讨
- 在PHP中 使用mysqli扩展库对mysql 的操作
- 基于 MySQL的高可用可扩展架构探讨
- [转载]FeedBurner:基于MySQL和JAVA的可扩展Web应用
- 操作数据库(MySql)表的扩展方法类,对单表可以进行增、删、改、查。
- 解析在PHP中使用mysqli扩展库对mysql的操作