如何在应用程序启动时检查sql连接状态?

时间:2012-01-10 09:24:26

标签: c# wpf sql-server sql-server-2008 database-connection

我的应用程序是一个WPF C#数据库应用程序,可与sql Server 2008和Entity Framework一起使用。

如果sql server停止或...,我的应用程序挂起但我想在发生此问题时向用户显示一条消息。 请帮帮我怎样才能做到。

2 个答案:

答案 0 :(得分:2)

您可以检查sql server服务是否正在运行

http://support.microsoft.com/kb/912426/en-us

然后在try-catch块中执行简单选择以检测您是否拥有数据库的用户权限。

try
{
var b = db.Table.FirstOrDefault();
}
catch(Exception e)
{
ShowMessageBox(e.Message);
}

答案 1 :(得分:1)

由于 - 通常 - 您可能没有权限或能力来检查sql server的服务状态,尝试使用短暂超时(5秒或更短)连接到您的数据库捕获异常并向用户显示您想要的内容。 / p>

var csb = new SqlConnectionStringBuilder(yourConnectionString);
csb.ConnectTimeout = 5;
try
{
  using(var c = new SqlConnection(csb.ToString())
  {
    c.Open();
  }
}
catch(Exception ex)
{
  Show the exception to user
}

go on your own