把数据库连接放到Application里面有何不好?大家进来评评

yhwebus 2003-11-20 10:04:36
微软说ADO.NET技术是Disconnected的,建议针对每次数据的操作进行一次数据库的Open和Close,其目的包括(1)减少连接占用的资源(2)减少死锁的发生 等等

我不清楚把数据库连接放到Application[]里面有何不好,在整个应用过程中只有一个连接.是否访问量比较大的话,该连接的负担太重?或者很容易造成死锁?

下面是我写的一段代码示例,大家看看,有何不妥
class SqlBase
{
SqlConnection m_dbConection;
String m_ConnectionString;

public SqlBase()
{
m_ConnectionString = "server=SHPC147;User ID=sa;Password=;database=Duwamish7;Connection Reset=FALSE"
m_dbConnection = new SqlConnection(m_ConnectionString);
m_dbConnection.Open();
}

public DataSet GetDataSet()
{
...
}
public SqlDataReader GetReader(string sql,out SqlDataReader dr)
{
...
}
}



//----in gobal.asa----
Application_OnStart()
{
SqlBase g_dbController = new SqlBase();
Application["dbController"] = g_dbController;
}


//---get Application["dbController"],create new instance if it lost
class Common
{
public static SqlBase GetDbController()
{
SqlBase dbController;
if (null != Application["dbController"])
{
return (SqlBase)Application["dbController"]
}
else
{
SqlBase dbController = new SqlBase();
Application["dbController"] = dbController;
return dbController;
}
}
}

//---anywhere in use---
//-------example----

SqlDataReader dr = null;
sql = "select * from Product"
Common.GetDbController.GetReader(sql,dr);


...全文
42 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yhwebus 2003-11-20
  • 打赏
  • 举报
回复
up
cpp2017 2003-11-20
  • 打赏
  • 举报
回复
Conntection对象放在application中代会造成很多用户争抢这一个连接,造成等待时间过长或死锁
yhwebus 2003-11-20
  • 打赏
  • 举报
回复
up

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧