c#数据库连接类

本文详细介绍了如何在C#中创建和使用数据库连接类,包括连接字符串配置、打开和关闭连接、执行SQL语句等关键步骤,帮助开发者更好地理解和操作数据库。
摘要由CSDN通过智能技术生成

数据库连接类:


//
//  类名称: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>
        /// 林佳旺 处理数据库分页 和分页页面处
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值