精简的后台程序代码——DBHelper
2016-07-19 15:30
281 查看
public class DbHelper
{
#region 资源定义
/// <summary>
/// 数据库连接
/// </summary>
public DbProviderFactory _DbProviderFactory; //数据库连接
/// <summary>
/// 读写连接字符串
/// </summary>
public string _ConnectionString; //读写连接字符串
/// <summary>
/// 只读连接字符串
/// </summary>
public string _QueryConnectionString; //只读连接字符串
/// <summary>
/// 数据库驱动类型
/// </summary>
public string _DriverType; //数据库驱动类型
#endregion
#region 初始化
/// <summary>
/// 构造函数
/// </summary>
/// <param name="connectionString"></param>
/// <param name="queryConnectionString"></param>
/// <param name="driverType"></param>
public DbHelper(string connectionString, string queryConnectionString, string driverType)
{
_DbProviderFactory = SqlClientFactory.Instance;
_ConnectionString = connectionString;
_QueryConnectionString = queryConnectionString;
_DriverType = driverType;
}
#endregion
public SQLBuilder.Sql Sql(string sql)
{
return new SQLBuilder.Sql(this, sql);
}
public SQLBuilder.Insert Insert(string tableName)
{
return new SQLBuilder.Insert(this, tableName);
}
//public SQLBuilder.Insert Insert(string tableName,string PrimaryKey)
//{
// return new SQLBuilder.Insert(this, tableName, PrimaryKey);
//}
public SQLBuilder.Insert_T<T> Insert<T>(T model)
{
return new SQLBuilder.Insert_T<T>(this, typeof(T).Name, model, string.Empty);
}
public SQLBuilder.Insert_T<T> Insert<T>(T model, string PrimaryKey)
{
return new SQLBuilder.Insert_T<T>(this, typeof(T).Name, model, PrimaryKey);
}
public SQLBuilder.Insert_T<T> Insert<T>(string tableName, T model, string PrimaryKey)
{
return new SQLBuilder.Insert_T<T>(this, tableName, model, PrimaryKey);
}
public SQLBuilder.Update Update(string tableName)
{
return new SQLBuilder.Update(this, tableName);
}
public SQLBuilder.Update_T<T> Update<T>(T model)
{
return new SQLBuilder.Update_T<T>(this, typeof(T).Name, model);
}
public SQLBuilder.Update_T<T> Update<T>(string tableName, T model)
{
return new SQLBuilder.Update_T<T>(this, tableName, model);
}
public SQLBuilder.Delete Delete(string tableName)
{
return new SQLBuilder.Delete(this, tableName);
}
public SQLBuilder.Select Select(string tableName, string colums)
{
return new SQLBuilder.Select(this, tableName, colums);
}
public SQLBuilder.Select_T<T> Select<T>(string tableName, string colums)
{
return new SQLBuilder.Select_T<T>(this, tableName, colums);
}
public SQLBuilder.Select_T<T> Select<T>( string colums)
{
return new SQLBuilder.Select_T<T>(this, typeof(T).Name, colums);
}
#region 方法
/// <summary>
/// 执行增删改sql语句
/// </summary>
/// <param name="sql">SQL语句</param>
/// <param name="param">参数</param>
/// <returns></returns>
public int Execute(string sql, object param)
{
if (string.IsNullOrEmpty(sql))
return -101;
using (var db = _DbProviderFactory.CreateConnection())
{
db.ConnectionString = _ConnectionString;
db.Open();
int _int = db.Execute(sql, param);
db.Close();
return _int;
}
}
/// <summary>
/// 执行查询SQL语句,返回第一行(只读库)
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sql">SQL语句</param>
/// <param name="param">参数</param>
/// <returns></returns>
public T QueryFirst<T>(string sql, object param)
{
try
{
using (var db = _DbProviderFactory.CreateConnection())
{
db.ConnectionString = _QueryConnectionString;
db.Open();
T result = db.Query<T>(sql, param).FirstOrDefault();
db.Close();
return result;
}
}
catch (Exception ex)
{
LogHelper.SetExceptionLog(ex);
return default(T);
}
}
/// <summary>
/// 执行查询SQL语句,返回第一行(读写库)
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sql">SQL语句</param>
/// <param name="param">参数</param>
/// <returns></returns>
public T QueryFirstForWrite<T>(string sql, object param)
{
try
{
using (var db = _DbProviderFactory.CreateConnection())
{
db.ConnectionString = _ConnectionString;
db.Open();
T result = db.Query<T>(sql, param).FirstOrDefault();
db.Close();
return result;
}
}
catch (Exception ex)
{
LogHelper.SetExceptionLog(ex);
return default(T);
}
}
/// <summary>
/// 执行查询SQL语句,返回数据实体(只读库)
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sql">SQL语句</param>
/// <param name="param">参数</param>
/// <returns></returns>
public IEnumerable<T> Query<T>(string sql, object param)
{
try
{
using (var db = _DbProviderFactory.CreateConnection())
{
db.ConnectionString = _QueryConnectionString;
db.Open();
IEnumerable<T> result = db.Query<T>(sql, param);
db.Close();
return result;
}
}
catch (Exception ex)
{
LogHelper.SetExceptionLog(ex);
return null;
}
}
/// <summary>
/// 执行查询SQL语句,返回数据实体(读写库)
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sql">SQL语句</param>
/// <param name="param">参数</param>
/// <returns></returns>
public IEnumerable<T> QueryForWrite<T>(string sql, object param)
{
try
{
using (var db = _DbProviderFactory.CreateConnection())
{
db.ConnectionString = _ConnectionString;
db.Open();
IEnumerable<T> result = db.Query<T>(sql, param);
db.Close();
return result;
}
}
catch (Exception ex)
{
LogHelper.SetExceptionLog(ex);
return null;
}
}
#endregion
}
{
#region 资源定义
/// <summary>
/// 数据库连接
/// </summary>
public DbProviderFactory _DbProviderFactory; //数据库连接
/// <summary>
/// 读写连接字符串
/// </summary>
public string _ConnectionString; //读写连接字符串
/// <summary>
/// 只读连接字符串
/// </summary>
public string _QueryConnectionString; //只读连接字符串
/// <summary>
/// 数据库驱动类型
/// </summary>
public string _DriverType; //数据库驱动类型
#endregion
#region 初始化
/// <summary>
/// 构造函数
/// </summary>
/// <param name="connectionString"></param>
/// <param name="queryConnectionString"></param>
/// <param name="driverType"></param>
public DbHelper(string connectionString, string queryConnectionString, string driverType)
{
_DbProviderFactory = SqlClientFactory.Instance;
_ConnectionString = connectionString;
_QueryConnectionString = queryConnectionString;
_DriverType = driverType;
}
#endregion
public SQLBuilder.Sql Sql(string sql)
{
return new SQLBuilder.Sql(this, sql);
}
public SQLBuilder.Insert Insert(string tableName)
{
return new SQLBuilder.Insert(this, tableName);
}
//public SQLBuilder.Insert Insert(string tableName,string PrimaryKey)
//{
// return new SQLBuilder.Insert(this, tableName, PrimaryKey);
//}
public SQLBuilder.Insert_T<T> Insert<T>(T model)
{
return new SQLBuilder.Insert_T<T>(this, typeof(T).Name, model, string.Empty);
}
public SQLBuilder.Insert_T<T> Insert<T>(T model, string PrimaryKey)
{
return new SQLBuilder.Insert_T<T>(this, typeof(T).Name, model, PrimaryKey);
}
public SQLBuilder.Insert_T<T> Insert<T>(string tableName, T model, string PrimaryKey)
{
return new SQLBuilder.Insert_T<T>(this, tableName, model, PrimaryKey);
}
public SQLBuilder.Update Update(string tableName)
{
return new SQLBuilder.Update(this, tableName);
}
public SQLBuilder.Update_T<T> Update<T>(T model)
{
return new SQLBuilder.Update_T<T>(this, typeof(T).Name, model);
}
public SQLBuilder.Update_T<T> Update<T>(string tableName, T model)
{
return new SQLBuilder.Update_T<T>(this, tableName, model);
}
public SQLBuilder.Delete Delete(string tableName)
{
return new SQLBuilder.Delete(this, tableName);
}
public SQLBuilder.Select Select(string tableName, string colums)
{
return new SQLBuilder.Select(this, tableName, colums);
}
public SQLBuilder.Select_T<T> Select<T>(string tableName, string colums)
{
return new SQLBuilder.Select_T<T>(this, tableName, colums);
}
public SQLBuilder.Select_T<T> Select<T>( string colums)
{
return new SQLBuilder.Select_T<T>(this, typeof(T).Name, colums);
}
#region 方法
/// <summary>
/// 执行增删改sql语句
/// </summary>
/// <param name="sql">SQL语句</param>
/// <param name="param">参数</param>
/// <returns></returns>
public int Execute(string sql, object param)
{
if (string.IsNullOrEmpty(sql))
return -101;
using (var db = _DbProviderFactory.CreateConnection())
{
db.ConnectionString = _ConnectionString;
db.Open();
int _int = db.Execute(sql, param);
db.Close();
return _int;
}
}
/// <summary>
/// 执行查询SQL语句,返回第一行(只读库)
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sql">SQL语句</param>
/// <param name="param">参数</param>
/// <returns></returns>
public T QueryFirst<T>(string sql, object param)
{
try
{
using (var db = _DbProviderFactory.CreateConnection())
{
db.ConnectionString = _QueryConnectionString;
db.Open();
T result = db.Query<T>(sql, param).FirstOrDefault();
db.Close();
return result;
}
}
catch (Exception ex)
{
LogHelper.SetExceptionLog(ex);
return default(T);
}
}
/// <summary>
/// 执行查询SQL语句,返回第一行(读写库)
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sql">SQL语句</param>
/// <param name="param">参数</param>
/// <returns></returns>
public T QueryFirstForWrite<T>(string sql, object param)
{
try
{
using (var db = _DbProviderFactory.CreateConnection())
{
db.ConnectionString = _ConnectionString;
db.Open();
T result = db.Query<T>(sql, param).FirstOrDefault();
db.Close();
return result;
}
}
catch (Exception ex)
{
LogHelper.SetExceptionLog(ex);
return default(T);
}
}
/// <summary>
/// 执行查询SQL语句,返回数据实体(只读库)
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sql">SQL语句</param>
/// <param name="param">参数</param>
/// <returns></returns>
public IEnumerable<T> Query<T>(string sql, object param)
{
try
{
using (var db = _DbProviderFactory.CreateConnection())
{
db.ConnectionString = _QueryConnectionString;
db.Open();
IEnumerable<T> result = db.Query<T>(sql, param);
db.Close();
return result;
}
}
catch (Exception ex)
{
LogHelper.SetExceptionLog(ex);
return null;
}
}
/// <summary>
/// 执行查询SQL语句,返回数据实体(读写库)
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sql">SQL语句</param>
/// <param name="param">参数</param>
/// <returns></returns>
public IEnumerable<T> QueryForWrite<T>(string sql, object param)
{
try
{
using (var db = _DbProviderFactory.CreateConnection())
{
db.ConnectionString = _ConnectionString;
db.Open();
IEnumerable<T> result = db.Query<T>(sql, param);
db.Close();
return result;
}
}
catch (Exception ex)
{
LogHelper.SetExceptionLog(ex);
return null;
}
}
#endregion
}
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- 如何在 Linux/Windows/MacOS 上使用 .NET 进行开发
- 如何在 Linux 中安装微软的 .NET Core SDK
- 星外ASP.Net的安全设置相关说明
- C#.NET获取拨号连接的宽带连接方法
- C#、ASP.NET通用扩展工具类之TypeParse
- C#.Net ArrayList的使用方法
- 实现ASP.NET无刷新下载并提示下载完成的开发思路
- PowerShell中使用.NET将程序集加入全局程序集缓存
- C#、ASP.NET通用扩展工具类之LogicSugar
- .net(c#)中的new关键字详细介绍
- 由vbs sort引发.NET Framework之间的关系说明
- C#难点逐个击破(6):C#数据类型与.net framework数据类型
- C#、ASP.NET通用工具类IsWhat?(可以判断数字、身份证、数据类型等等)
- 程序中常用的种代码
- .NET中的async和await关键字使用及Task异步调用实例
- ASP.NET、ASP、PHP、JSP之间有什么区别?
- 基于.NET平台常用的框架和开源程序整理
- 在ASP.NET 2.0中操作数据之六十六:在TableAdapters中使用现有的存储过程
- RabbitMQ入门与使用篇 推荐