• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

关于监视SqlConnection状态的问题

离子漂浮物 2009-04-08 10:53:34

if (Conn.State != ConnectionState.Open)
{
try
{
Conn.Open();
}
catch
{
System.Web.HttpContext.Current.Response.Write("网站数据库服务器正在维护中,请稍候重试。");
System.Web.HttpContext.Current.Response.End();
}
}


以上是我用来作数据库open的监视语句,在正常情况下,如果open失败的话,就会提示“网站数据库服务器正在维护中,请稍候重试。”
但如果页面刷新过一次,完成了.net的加载并显示出数据后,数据库突然关闭后再次刷新页面就会提示:

"在从服务器接收结果时发生传输级错误。 (provider: 共享内存提供程序, error: 0 - 系统无法打开文件。) "

提示行居然是SqlCommand的ExecuteReader();行,

想问一下除了try SqlCommand的ExecuteReader() 外还有别的什么更好的错误过滤方式,如上面代码那个核实某个状态后提示信息呢?
...全文
106 点赞 收藏 8
写回复
8 条回复
liu4545533 2009年04月10日
没有管理数据库啊、
回复 点赞
离子漂浮物 2009年04月10日
[Quote=引用 6 楼 lude8880 的回复:]
最好在catch的时候加上conn.close()
[/Quote]

这段代码是放在using里的,不加close也一样会close。

现在问题是怎么样防止数据库服务器突然关闭
回复 点赞
lude8880 2009年04月10日
最好在catch的时候加上conn.close()
回复 点赞
opou 2009年04月08日
学习了
回复 点赞
itcrazyman 2009年04月08日
[Quote=引用 3 楼 hwj383 的回复:]
ExecuteReader()会连接并执行查询,你断开了数据库连接,当然会出现此错误,try catch住吧
[/Quote]
mark up
回复 点赞
hwj383 2009年04月08日
ExecuteReader()会连接并执行查询,你断开了数据库连接,当然会出现此错误,try catch住吧
回复 点赞
离子漂浮物 2009年04月08日
我说的是asp.net在加载并显示过数据后,数据库服务器突然关闭,导致出现
"在从服务器接收结果时发生传输级错误。 (provider: 共享内存提供程序, error: 0 - 系统无法打开文件。) "
的错误提示。
回复 点赞
我在深圳搬砖-Justin 2009年04月08日
数据库服务打开后没有关闭
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告