如何更好的打开数据库链接或关闭数据库链接?

hchxxzx 2002-10-29 01:37:31
我现在用的是ORACLE8I的数据库,页面语言用VB。NET,我将操作数据库生成数据库的操作都放在类里面,每个操作都要重复打开、关闭数据库,如果一个页面中要用到数据个数据操作,就意味着要打开数次数据库,关闭数据库。实在是很浪费资源。有没有办法解决这个问题?能不能做到象ASP那样在一个页面的头打开数据库,在页面的尾所有操作都结束了再关闭数据库链接?
(注:我采用的是页面与代码分离的方式写程序)
类的操作如下:(示意)

Public Function getName(ByVal userid As String) As String
Dim mySql As String = "select usr_name " & _
" from asm_user" & _
" where usr_id='" & userid & "'"

Dim myReader As OracleDataReader
Dim sUserName As String
Dim myConn As New OracleConnection(ConfigurationSettings.AppSettings("sysDSN"))
myConn.Open() '''''看,打开数据库,后面又要关闭数据库

myReader = _Oracle.getDataReader(mySql, myConn)

If myReader.Read() Then
sUserName = myReader.GetString(0)
Else
sUserName = ""
End If

myReader.Close()
myConn.Close()

Return (sUserName)

End Function
...全文
99 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hchxxzx 2002-10-31
  • 打赏
  • 举报
回复
hammerng00(Hammer Ng)

不是这样的,一般在ASP中,都是在页面的顶部将数据库链接打开,然后在页面的加载过程中,多次应用到这个数据库链接,而在加载完成之后,就将此数据库链接关闭了,这样才是最佳的方式。而现在,如我提出的那种调用方式,如果我要在PAGE_LOAD中调用此类实现多个操作,比如分别要从10个表中取数据,那我分10次调用此类(当然现实不是这样的),这样,就要分别打开10次数据库,并关闭10次数据库,是不是要耗尽资源?
hchxxzx 2002-10-30
  • 打赏
  • 举报
回复
这不是浪费资源,这是在节省资源,否则你的程序会越来越慢。???
同志,可我的类里面是非常多的类似上面的函数,每一个函数都要打开和关闭数据库,你说耗不耗资源?
我的意思是希望能在一个页面中只打开一次数据库,在页面结束的时候关闭此数据库,这样比起在一个页面中打开N次好一点吧。
hammerng00 2002-10-30
  • 打赏
  • 举报
回复
我想问题在于数据库的使用次数。如果该数据库只有一个程序在用,那早开迟关应该是可以的;如果有很多程序在用,这样做就不妙了,因为每开一个 Connection,都会占用资源,而你又不释放资源(就是不关 Connection),那迟早资源被用尽,系统会罢工的哟。所以啊,还是迟开早关的好...
chyich 2002-10-29
  • 打赏
  • 举报
回复
如果你想开始时打开连接,就在page_load事件里打开连接,关闭时就page_unload事件里关闭连接,就能实现你的想法了。但一般不推荐这样使用。就象前面说的一样会浪费资源。
xhan2000 2002-10-29
  • 打赏
  • 举报
回复
做多层结构的话就不能这样写


推荐析构函数
kuailexq2000 2002-10-29
  • 打赏
  • 举报
回复
这不是浪费资源,这是在节省资源,否则你的程序会越来越慢。
da_peng 2002-10-29
  • 打赏
  • 举报
回复
每次打数据库都会占用很多资源,所以打开一次数据库就尽量做最多的事情,然后再关闭,这样可以节省部分资源,
saucer 2002-10-29
  • 打赏
  • 举报
回复
add an OracleConnection variable to your Page class, open the connection in Page's Init or Load event handler, and close it in Page's Unload event handler
LazyMan 2002-10-29
  • 打赏
  • 举报
回复
这不是浪费资源,这是在节省资源,及时关闭连接,对数据库有莫大的好处,哈哈

62,041

社区成员

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

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

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

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