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

发布于 2024-12-26 06:58:32 字数 133 浏览 0 评论 0原文

我的应用程序是一个 WPF C# 数据库应用程序,可与 sql Server 2008 和实体框架配合使用。

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

My application is a WPF C# database app that work with sql Server 2008 and Entity Framework.

if sql server Stopped or ..., my application hangs but i want to Show a message to the user if this problem occurred.
Please help me how can i do it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

别靠近我心 2025-01-02 06:58:32

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

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

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

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

You can check if sql server service is running

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

and then perform simple select in try-catch block to detect, that you have user rights to database.

try
{
var b = db.Table.FirstOrDefault();
}
catch(Exception e)
{
ShowMessageBox(e.Message);
}
╰◇生如夏花灿烂 2025-01-02 06:58:32

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

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

Since - in general - you may have no permissions or ability to check sql server's service status, try to connect to your database with the short timeout (5 sec or less) catch the Exception and show to user what you want.

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文