读书人

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

发布时间: 2013-07-04 11:45:28 作者: rapoo

请教高手:数据库的连接字符串是静态化好还是实例化好?
本帖最后由 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 中,不然报错就不关了。
上面问【连接字符串】要不要静态,下面说的是【连接对象】要不要静态,答案是:
连接字符串不要静态,连接对象也不要静态。
[解决办法]
不要用静态的,并发就毁了
[解决办法]
连接字符串无所谓,连接对象的话,如果用静态,同时用到多线程的时候要做好同步,不用多线程没关系。

读书人网 >C#

热点推荐