首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

:数据库的连接字符串封装类是静态化好还是实例化好

2013-07-04 
高手指点:数据库的连接字符串封装类是静态化好还是实例化好?本帖最后由 angkor506 于 2013-06-29 17:30:14

高手指点:数据库的连接字符串封装类是静态化好还是实例化好?
本帖最后由 angkor506 于 2013-06-29 17:30:14 编辑 希望高手指点:封装数据库的连接字符串是静态化好还是实例化好?哪个运行的效率高而且能把应用池尽快释放处理? 现在是实例化的:
namespace WebConn
{
    #region 数据库操作类
    public class B_SqlConn : IDisposable
    {
        public SqlConnection Conn = null;
        public string strConn = System.Configuration.ConfigurationManager.AppSettings["StrConn"];
        /// <summary>
        /// 打开数据库连接
        /// </summary>
        public void Open()
        {
            Conn = new SqlConnection(strConn);
            if (Conn.State == ConnectionState.Closed)
            {
                Conn.Open();
            }
            else if (Conn.State == ConnectionState.Broken)
            {
                Conn.Close();
                Conn.Open();
            }
        }
        /// <summary>
        /// 关闭数据库连接
        /// </summary>
        public void Close()
        {
           Conn = new SqlConnection(strConn);
            if (Conn.State == ConnectionState.Open)//判断连接的状态是否打开
            {
                Conn.Close();
            }


        }
        /// <summary>
        /// 释放资源
        /// </summary>
        public void Dispose()
        {
            
            Conn = new SqlConnection(strConn);
            if (Conn != null)// 确认连接是否已经关闭
            {
                Conn.Dispose();
                Conn = null;
            }

        }
    }
    #endregion

引用连接的时候:using WebConn;

B_SqlConn Exsql = new B_SqlConn()
Exsql.Open();
......
Exsql.Close();
Exsql.Dispose();


这样是不是最好的数据库封住类,还是转变为:static 静态类的好?
用的时候直接 B_SqlConn.Open();
.....
B_SqlConn.Close();
B_SqlConn.Dispose();

那种是最正确的?性能最好的?这几年我一直用的都是实例化调用的方式,但不知道是不是最好的,因为应用池总感觉人多访问会出现超时,虽然这个不是最主要影响,但都是想从最优化性能的角度去改善代码 数据库 类 实例
[解决办法]
个人觉得用静态的比较好,一般数据库的操作都是比较频繁的,让数据操作类使用一个单例模式

热点排行