首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2013-07-04 
请教高手:数据库的连接字符串是静态化好还是实例化好?本帖最后由 angkor506 于 2013-06-29 17:30:37 编辑

请教高手:数据库的连接字符串是静态化好还是实例化好?
本帖最后由 angkor506 于 2013-06-29 17:30:37 编辑 希望高手指点:封装数据库的连接字符串是静态化好还是实例化好?哪个运行的效率高而且能把应用池尽快释放处理? 现在是实例化的:
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();

那种是最正确的?性能最好的?这几年我一直用的都是实例化调用的方式,但不知道是不是最好的,因为应用池总感觉人多访问会出现超时,虽然这个不是最主要影响,但都是想从最优化性能的角度去改善代码 数据库 实例 类
[解决办法]
.net有自己的机制吧,直接用就行
[解决办法]
http://www.cnblogs.com/tuyile006/archive/2008/05/26/1207988.html
[解决办法]
什么应用池?是连接池吧,只要用完关闭就不会有问题,关闭要放在 finally 中,不然报错就不关了。
上面问【连接字符串】要不要静态,下面说的是【连接对象】要不要静态,答案是:
连接字符串不要静态,连接对象也不要静态。
[解决办法]
不要用静态的,并发就毁了
[解决办法]
连接字符串无所谓,连接对象的话,如果用静态,同时用到多线程的时候要做好同步,不用多线程没关系。

热点排行