求只连接一次数据库的方法?

huangjinqiu87 2011-01-25 02:38:22
前台页面用ajax,后台用.NET,但是每次前台发送一个请求,ajax传参给不同的页面,就要调用一次数据库链接,能不能只用调用一次数据库链接,关闭数据库的操作我自己在需要的时候管理,不想每个页面都调用一次数据库的链接和关闭。
(暂时不考虑xml和缓存)非常想知道答案!求各位大虾给点意见!非常感谢!
...全文
194 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
不老神仙 2011-01-26
  • 打赏
  • 举报
回复
和你些连接字符串有关系 在连接字符串里面可以配置是否每次都连接
zhubo006 2011-01-26
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
并发地访问数据库时每一个数据库会话就该各自使用一个独立的连接,这是数据库系统人家这么设计的,就跟“共享变量会不会搞乱你的程序”一样都属于比较实际的多用户编程知识。
  • 打赏
  • 举报
回复
呵呵,我想你没有多用户并发使用过你的软件。

如果并发使用ado.net,而用什么static 的数据库连接或者所谓“单件”的形式,你的程序当然频繁出现类似“
已有打开的与此连接相关联的 DataReader,必须首先将它关闭”这类异常而崩溃,实际经验下你就知道这个所谓的“共享数据库连接”多么想当然了。
wuyq11 2011-01-25
  • 打赏
  • 举报
回复
区分物理连接
sqlconnection是基于数据库连接池技术
taotaohuoli 2011-01-25
  • 打赏
  • 举报
回复
你可以选择一次性把数据从数据库拿出来,然后随用随拿,会存在缓存问题!
junyao100 2011-01-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 qldsrx 的回复:]
请放心,微软为我们考虑过了,只要你的链接字符串不改变,只要你的IIS未重启,只要你的请求并发数不高,你所有的请求都会利用之前打开过的数据库连接来操作的,数据库的关闭(包括dispose()操作)默认情况下是不关闭的,它是放入了一个连接缓存池统一管理的,需要的时候拿出来用,除非你在连接字符串中指定不缓存。
[/Quote]
顶起……
ken_flash 2011-01-25
  • 打赏
  • 举报
回复
楼主 你知道数据库中间件么?就是你这么个需求的结果

不过你没必要担心数据库,多用SqlReader这样的东西就行了,如果你真想一个IP保持一个连接,那就单件模式弄个SqlConnection
huangjinqiu87 2011-01-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 qldsrx 的回复:]
请放心,微软为我们考虑过了,只要你的链接字符串不改变,只要你的IIS未重启,只要你的请求并发数不高,你所有的请求都会利用之前打开过的数据库连接来操作的,数据库的关闭(包括dispose()操作)默认情况下是不关闭的,它是放入了一个连接缓存池统一管理的,需要的时候拿出来用,除非你在连接字符串中指定不缓存。
[/Quote]
但是我的页面每次都要写那些数据库 链接啊 关闭啊什么的,我想要的是我只连接一次数据库,然后所有的页面都直接链接到了数据库,而不是我发送一次请求换一个页面之后又要连接一次数据库。类似于全局变量,只申请一次所有的都能用!!
knifenan 2011-01-25
  • 打赏
  • 举报
回复
同意三楼
一克代码 2011-01-25
  • 打赏
  • 举报
回复
像连接池!
qldsrx 2011-01-25
  • 打赏
  • 举报
回复
请放心,微软为我们考虑过了,只要你的链接字符串不改变,只要你的IIS未重启,只要你的请求并发数不高,你所有的请求都会利用之前打开过的数据库连接来操作的,数据库的关闭(包括dispose()操作)默认情况下是不关闭的,它是放入了一个连接缓存池统一管理的,需要的时候拿出来用,除非你在连接字符串中指定不缓存。
子夜__ 2011-01-25
  • 打赏
  • 举报
回复
这个应该是不可避免的。。。

要满足业务。。要么你就把数据一次请求完毕 然后再页面调用。。这样也不好。至少要请求吧

请求的次数减少吧

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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