0

只是想知道是否有人知道如何在页面上显示数据库连接的状态。

我想知道是否有良好的连接,或者它是否已关闭。在这种情况下,我也会显示原因。

4

4 回答 4

1

在使用 asp.net 处理数据库时,您的连接不应该一直打开。牢记这一点,您不必(也不应该)一直显示数据库的连接状态。您应该做的是在使用 ado.net 或其他 OR/M 执行查询时捕获 SqlException并向您的用户提供有意义的错误。

来自 msdn 文章:

try {
   // code here
}
catch (SqlException odbcEx) {
   // Handle more specific SqlException exception here.
}
catch (Exception ex) {
   // Handle generic ones here.
}
于 2012-07-16T08:38:47.627 回答
0

只需捕获数据库异常,因为一旦没有连接就会触发异常/错误。

如果有联系,你会知道

于 2012-07-16T08:29:22.150 回答
0

理想情况下,向用户介绍数据库并不是一个好习惯。任何数据库错误都应该被记录并替换为更用户友好的错误消息。

如果您仍需要在屏幕上显示连接状态,您可以处理 SQLConnection 的 StateChange 事件并显示相应的消息。

更新:我建议您只记录错误并有一个程序向您发送失败的电子邮件或手动查看系统,而不是用户告诉您您的数据库已关闭。

于 2012-07-16T08:41:33.973 回答
0

检查连接状态的方法有很多,您可以使用 ASP.Net Timer 定期检查连接,(请记住,每个计时器间隔都会导致回发到服务器并导致网络流量),请参阅演练:使用 ASP。具有多个 UpdatePanel 控件的 NET 计时器控件

在这种情况Timer_Tick下,您可以检查连接并在标签中发布消息。以下几行的内容...

protected void Timer1_Tick(object sender, EventArgs e)
{
   try
       {
        using (SqlConnection sqlConn =
            new SqlConnection("YourConnectionString"))
            {
                sqlConn.Open();
                Label1.Text = "Database Available";


            }
        }
    catch (Exception ex)
        {
                Label1.Text = "Database Un-Available, " + "Possible Reason:"+ ex.Message;
        }
    }

捕获泛型异常 () 不是一个好习惯Exception,您可能会捕获 SQLException,然后使用另一个块来处理泛型异常。

于 2012-07-16T08:45:18.650 回答