数据库连接类:
//
// 类名称:GemCommon.DbConnCls
// 功能:通用数据库访问类
// 版本:4.1.0.1
// 开发设计:刘彬
// 历史:
// 2010年3月16日
// 创建1.0.0.0,使用接口实现。
// 2010年8月16日
// 大修改,创建2.0.0.0,使用System.Data.Common实现。
// 2010年9月20日
// 修改,创建3.0.0.0,添加使用参数的查询重载。
// 2010年9月21日
// 修改,添加创建参数的重载。
// 2011年8月5日
// 升级为4.0.0.2
// 添加static public int Execute(string sql, System.Data.Common.DbConnection Conn, DBParams param,System.Data.Common.DbTransaction tran)方法。
// 修改Execute方法所有重载的返回值,当发生异常时返回 -1
// 2012年6月6日
// 升级为4.0.0.3
// 添加static public System.Data.Common.DbConnection OpenConnect(string connStr, string Provider)
// 2012年6月17日
// 升级为4.0.0.4
// 修改Execute方法所有重载的返回值,当发生异常时返回 -1,数据库连接打开失败返回-2。
// 修改ExecuteQueryToDataTable方法实现。
// 修改getParameter(string connName)方法,添加try-catch捕获异常。
// 2012年10月18日
// 升级为4.0.0.5
// 修改ErrLog(string ErrInfo)方法,将错误日志按照月份和天数分开保存。
// 2013年1月8日
// 升级为4.0.0.6
// 剔除ErrLog(string ErrInfo)方法,将该方法整理到AppLog类中。
// 2014年3月24日
// 升级为4.0.0.7
// 添加LastSqlErrInfo属性。
// 2015年1月7日
// 升级为4.0.0.8
// 添加ExecuteScalar方法。
// 修改查询错误时的信息提示。
// 2015年4月22日
// 升级为4.0.0.9
// 添加ExecuteQueryToDataTable(string sql, System.Data.Common.DbConnection Conn, int Start, int Max)方法。
// 添加ExecuteQueryToDataTable(string sql, System.Data.Common.DbConnection Conn, DBParams param, int Start, int Max)方法。
// 修改所有Execute方法,发生异常时返回-3
// 2017年2月14日
// 升级为4.1.0.0
// 添加static public System.Data.DataTable ExecuteQueryToDataTable(string sql, System.Data.Common.DbConnection Conn, DBParams param,System.Data.Common.DbTransaction tran)方法。
// static public System.Data.IDataReader ExecuteQuery(string sql, System.Data.Common.DbConnection Conn, DBParams param, System.Data.Common.DbTransaction tran)方法。
// 2017年8月17日
// 升级为4.1.0.1
// 添加public static int CommandTimeout 属性
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace GemCommon
{
/// <summary>
/// 通用数据库访问类_Ver4.1.0.1
/// </summary>
public class DbConnCls
{
private static string lastSqlErrInfo;
/// <summary>
/// 最后一个数据库返回的错误信息。
/// </summary>
public static string LastSqlErrInfo
{
get { return lastSqlErrInfo; }
}
private static int commandTimeout = 60;
/// <summary>
/// SQL语句执行等待时间(秒)
/// </summary>
public static int CommandTimeout
{
get { return commandTimeout; }
set { commandTimeout = value; }
}
public DbConnCls()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 打开数据库连接
/// </summary>
/// <param name="connName">连接名</param>
/// <returns></returns>
static public System.Data.Common.DbConnection OpenConnect(string connName)
{
System.Data.Common.DbConnection Conn;
//try
//{
//得到配置文件中的连接信息
System.Configuration.ConnectionStringSettings s = System.Configuration.ConfigurationManager.ConnectionStrings[connName];
//得到驱动类型
System.Data.Common.DbProviderFactory f = System.Data.Common.DbProviderFactories.GetFactory(s.ProviderName);
Conn = f.CreateConnection();
//得到连接字符串
Conn.ConnectionString = s.ConnectionString;
Conn.Open();
return Conn;
//}
//catch (Exception ex)
//{
// lastSqlErrInfo = ex.ToString();
// AppLog.ErrLog("GemCommon.DbConnCls.OpenConnect(string connName)" + lastSqlErrInfo);
// return null;
//}
}//OpenConnect(string connName)
/// <summary>
/// 打开数据库连接
/// </summary>
/// <param name="connStr">连接字符串</param>
/// <param name="Provider">连接驱动</param>
/// <returns></returns>
static public System.Data.Common.DbConnection OpenConnect(string connStr, string Provider)
{
try
{
System.Data.Common.DbConnection Conn;
//得到配置文件中的连接信息
//得到驱动类型
System.Data.Common.DbProviderFactory f = System.Data.Common.DbProviderFactories.GetFactory(Provider);
Conn = f.CreateConnection();
//得到连接字符串
Conn.ConnectionString = connStr;
Conn.Open();
return Conn;
}
catch (Exception ex)
{
lastSqlErrInfo = ex.Message;
AppLog.AddErrLog("GemCommon.DbConnCls.OpenConnect(string connStr, string Provider)" + lastSqlErrInfo);
return null;
}
}//OpenConnect(string connName)
/// <summary>
/// 执行查询返回DataTable
/// </summary>
/// <param name="sql">Sql语句</param>
/// <param name="Conn">连接对象</param>
/// <returns>成功返回DataTable,失败则返回 null</returns>
static public System.Data.DataTable ExecuteQueryToDataTable(string sql, System.Data.Common.DbConnection Conn)
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.IDataReader reader = ExecuteQuery(sql, Conn);
if (reader != null)
{
dt.Load(reader);
reader.Close();
return dt;
}
else
{
return null;
}
}//ExecuteQueryToDataTable(string sql)
/// <summary>
/// 林佳旺 处理数据库分页 和分页页面处