老师们!一个登陆页面产生6个数据库连接,乍会事啊?

时间:2021-10-20 17:08:15
为公司负责开发一个项目,在登陆页面中打开有多个连接,查看oracle数据,不看不知道,真的是吓一跳,产生了至少6个连接,我又试着查询数据,呵呵,多了30几个了!

我的操作数据库的思路是:
1、我写了一个dbFun类文件,专门处理数据库有关操作,包括查询,调用包等函数,还有数据库连接、打开、关闭等函数,设置属性的封装过程,还继承了对象的dispos,在其中还调用了GC对象的回收,在自己封装的关闭数据库函数中,还调用了数据库对象的close,dispos。在其他文件中,我还用到了dbFun.dispos。为什么写了这么多呢? 这是我一步一步加的,每加一步,就查看数据库连接会话,基本连接还是那么多!
2、我用的数据库是oracle,数据库连接驱动用的是oledb.oracle。
3、实在没办法,我打算采用asp连接数据库的方法,不用dbFun类了,在每个与数据库有关的页面中,加上定义数据库对象,打开,执行,关闭,释放等。可是改动好大啊,而且急着交货。

各位老师们,你们有没有更好的方法,或者贴一下你们曾经写过的类文件(与数据库有关的)。拜托

8 个解决方案

#1


用System.Data.OracleClient名字空间要好点。

#2


恐怕是你的有些链接没有关闭吧.你可以使用断点的功能,一步一步查看你的代码执行过程,看看哪些调用,真正关闭了数据库.

#3


可能是你dbfun类没写好,每个connnection open后操作完了一定记得close上。
另外,我不同意一楼意见,做了不少东西了,个人觉得支持.net framework1.1以上版本的oracleclient并不是特别好用。oledb挺稳定的。

#4


用到操作数据库的时候,把连接打开,用完之后马上关闭。
关于你说的第3点,那肯定是要一个一个修改的了,不过如果你用
了连接池,那改起来应该会简单很多了

#5


在web.config里我是用的<add key="OracleConnection.ConnectionString" value="Provider=OraOLEDB.Oracle;Persist Security Info=true;User ID=test;password=test;Data Source=yjfs;pooling=true;min pool size=0;max pool size=10;connection reset=true"/>

请问这样是正确的连接池写话吗?

还有,我的dbFun类,包括调用的dbFun文件,我都释放了,应该不存在没有释放语句的问题!

郁闷。。。

#6


yes, after you open a connection, you must close it as soon as possible.
Or you can use microsoft enterprise libray, it is ok

#7


在web.config里我是用的<add key="OracleConnection.ConnectionString" value="Provider=OraOLEDB.Oracle;Persist Security Info=true;User ID=test;password=test;Data Source=yjfs;pooling=true;min pool size=0;max pool size=10;connection reset=true"/>

请问这样是正确的连接池写话吗?

还有,我的dbFun类,包括调用的dbFun文件,我都释放了,应该不存在没有释放语句的问题!

郁闷。。。

_____________________________
建议不要使用connection pooling , 设pooling=false

#8


呵呵,我还是用了asp的思路,发了一天时间,修改了所有与数据库相关的页面!

项目是没问题了,连接控制在3个左右。这个问题还是需要好好查查资料!

见者有分!

#1


用System.Data.OracleClient名字空间要好点。

#2


恐怕是你的有些链接没有关闭吧.你可以使用断点的功能,一步一步查看你的代码执行过程,看看哪些调用,真正关闭了数据库.

#3


可能是你dbfun类没写好,每个connnection open后操作完了一定记得close上。
另外,我不同意一楼意见,做了不少东西了,个人觉得支持.net framework1.1以上版本的oracleclient并不是特别好用。oledb挺稳定的。

#4


用到操作数据库的时候,把连接打开,用完之后马上关闭。
关于你说的第3点,那肯定是要一个一个修改的了,不过如果你用
了连接池,那改起来应该会简单很多了

#5


在web.config里我是用的<add key="OracleConnection.ConnectionString" value="Provider=OraOLEDB.Oracle;Persist Security Info=true;User ID=test;password=test;Data Source=yjfs;pooling=true;min pool size=0;max pool size=10;connection reset=true"/>

请问这样是正确的连接池写话吗?

还有,我的dbFun类,包括调用的dbFun文件,我都释放了,应该不存在没有释放语句的问题!

郁闷。。。

#6


yes, after you open a connection, you must close it as soon as possible.
Or you can use microsoft enterprise libray, it is ok

#7


在web.config里我是用的<add key="OracleConnection.ConnectionString" value="Provider=OraOLEDB.Oracle;Persist Security Info=true;User ID=test;password=test;Data Source=yjfs;pooling=true;min pool size=0;max pool size=10;connection reset=true"/>

请问这样是正确的连接池写话吗?

还有,我的dbFun类,包括调用的dbFun文件,我都释放了,应该不存在没有释放语句的问题!

郁闷。。。

_____________________________
建议不要使用connection pooling , 设pooling=false

#8


呵呵,我还是用了asp的思路,发了一天时间,修改了所有与数据库相关的页面!

项目是没问题了,连接控制在3个左右。这个问题还是需要好好查查资料!

见者有分!