【发布时间】:2013-11-05 12:03:58
【问题描述】:
我在 asp.net/c# 中有一个更新 SQL 服务器的网站,该网站目前运行良好。但是,我正在考虑将其带到移动设备上,并想知道如果设备失去连接该怎么办。基本上,如果用户尝试进行编辑时无法连接,我想抓住它。
基本代码是:
try
{
Conn.Open();
}
catch (SqlException)
{
Session["HaveWeUpdated"] = 0;
Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "alertMessage", "alert('Error')", true);
}
finally
{
Conn.Close();
}
如果无法连接,应该会弹出弹出消息,并将我们的 HaveWeUpdated 会话值设置为 0。不幸的是,目前,当我尝试它时(只需将电缆从我的 PC 中拔出) 它进入标准的 IE8“诊断连接问题”页面并且不显示弹出消息 - 因此,我猜它没有被捕获。
【问题讨论】:
-
如果您无法打开连接,
finally可能会引发异常。使用using语句来处理/关闭连接。 -
它实际上是
SqlException吗?如果网络错误表现为SqlException,我会感到惊讶。注意:using优于Open/Close。另外:如果这是 ASP.NET,那么您的 C# 代码将在 服务器上运行;浏览器对话框在客户端运行。不同的宇宙(如果这实际上是移动设备代码,请忽略)。 -
您的问题与“诊断连接问题”有关,请参考下面我的回答..
-
@TimSchmelter Using 语句也有同样的作用。完全没有区别。它会抛出异常。
-
@Sriram Sakthivel,这就是 Tim Schmelter 所说的吗?
标签: c# asp.net sql connection