读书人

数据库连接有关问题打开关闭有关问题

发布时间: 2012-10-19 16:53:37 作者: rapoo

数据库连接问题打开关闭问题
有一个管理软件,在IIS上 随时都会出现连接用户过多这个问题,我想也许是我的数据库连接打开过后未关闭,我就每次SqlDataReader之后 我都把dr.close();但是 还是要出现这种情况 求解 求解决办法 急等中!!!

[解决办法]
只要在某个用户对单个逻辑操作结束后就关闭连接应该是没有问题的。应该还是你代码中没有及时关闭连接的问题。可否把代码贴出来看看
[解决办法]
全都补上异常处理,并且关闭。
你现在的代码出现异常,铁定是不会关闭连接的
[解决办法]
什么操作系统
2003 , Vista,win 2008 都可以运行很多网站,连接很多人数
检查SqlHelper.SqlHelpDao.ExecuteReader
[解决办法]

C# code
try{    ....}catch(Exception e){    ....}finally{    dr.close();}
[解决办法]
using () {} 才是王道
[解决办法]
不要用XP系统作为net软件开发的操作系统
[解决办法]
用using嵌套try{}catch{}finally{}
[解决办法]
探讨
C# code

try
{
....
}
catch(Exception e)
{
....
}
finally
{
dr.close();
}

[解决办法]
SqlHelper.SqlHelpDao.ExecuteReader 就是调用一个抽象类中的静态方法

[解决办法]
你是不是查询到sqldatareader的时候没有关闭数据连接呢?如下
查询时:
try
{
sqlconnection.Open();
return sqldataReader;
}
catch(Exception e)
{
....
}
finally
{
sqlconnection.close();
}
调用时:
try
{
....
}
catch(Exception e)
{
....
}
finally
{
dr.close();
}

[解决办法]
如果是你自己写的数据库操作类,建议你可以参考那个sqlhelper.cs这个类来写。
[解决办法]
把同时连接的数量设置大一点
[解决办法]
try
{
....
}
catch(Exception e)
{
....
}
finally
{
dr.close();
}

[解决办法]
把数据操作的部分拿出来,写成公用的部分,将数据连接的打开与关闭都写进去

没此链接数据库的时候调用该公用的方法,以确保数据连接在处理完数据之后的状态是Close的
[解决办法]
5楼正解

一般开关都放在using块里,或者是try {} cacth{}块里
[解决办法]
public List<Model.Brands> queryAll(string brandsname)
{
List<Model.Brands> list = new List<Model.Brands>();
Model.Brands brands = null;
SqlDataReader dr = SqlHelper.SqlHelpDao.ExecuteReader(Constance.CONN, CommandType.Text, "select * from Brands where Brands_Name like '%" + brandsname + "%' or Brands_Py like '%" + brandsname + "%' and IsPublicMark= 1 order by Brands_Name", null);
try
{
while (dr.Read())
{

brands = new Model.Brands();
brands.Brands_id = Convert.ToInt32(dr["Brands_id"].ToString());
brands.Brands_Inc = dr["Brands_Inc"].ToString();
brands.Brands_Name = dr["Brands_Name"].ToString();
brands.Brands_Py = dr["Brands_Py"].ToString();
brands.IsPublicMark = dr["IsPublicMark"].ToString();
list.Add(brands);
}
}
catch()
{
}


finally
{
dr.Close();
dr.Dispose();
}
return list;
}

[解决办法]
27楼都给你例子了,你还头痛?

明显你的代码手动关闭了链接,但实际运行时却没关闭时,唯一的情况就是没关闭成功,也就是dr.Close();
这种语句没能执行,比如出现异常情况时,一般不是往下执行的,程序回到错误页面,但数据库链接池时的对象还是保持接通状态
[解决办法]
数据库连接都应该加上异常处理的
[解决办法]
XP系统的问题,没关系
[解决办法]

探讨
不要用XP系统作为net软件开发的操作系统

读书人网 >asp.net

热点推荐