【问题标题】:SQL Server : reconnect after lost connectionSQL Server:失去连接后重新连接
【发布时间】:2014-11-26 16:08:34
【问题描述】:

我想打开 WPF 程序,然后 SQL Server 数据库关闭,当数据库重新联机时,WPF 应该自动连接到数据库。如果我重新启动 SQL Server,请保持活动程序并尝试连接到数据库,直到连接可用。我应该抓住异常然后重复一些事情吗?

我尝试重新启动应用程序,然后出现异常,但无论如何我的程序崩溃并停止工作。

using (SqlConnection connection = new SqlConnection(connectionString))
{
    try
    {
        connection.Open();
    }
    catch (SqlException ex)
    {
        //how stop crash? //
        //System.Windows.Forms.Application.Restart();
        return ex.ToString();
    }
    finally
    {
        connection.Close();
    }
}

【问题讨论】:

  • 您可以使用递归的方法来检查是否可以建立连接。但如果它是性能的最佳解决方案,我怀疑

标签: c# sql-server wpf


【解决方案1】:

要做的就是在一个静态方法中为整个应用程序集中创建连接。

public static SqlConnection getConnection()
{
      string conn = string.Empty;
      conn = System.Configuration.ConfigurationManager.ConnectionStrings["quality"].ConnectionString;
      SqlConnection aConnection = new SqlConnection(conn);
      return aConnection;
}

在您的代码中,每次使用连接时都试试这个:

public int test()
{
    SqlConnection conn = null;

    try
    {
        try
        {
            conn = StaticContext.getConnection();
            conn.Open();
            //TODO OPERATION



        }
        catch (Exception e)
        {
            //return ex.ToString();
            return -1;//MY_ERROR_CODE;
        }
    }


    finally
    {
        conn.Close();
    }
    return 1//MY_SUCCES_CODE;

}

当你调用 DB 方法管理时,报错:

if (test() == -1)
{
   //MESSAGE BOX ERROR OR OTHER
}

【讨论】:

    猜你喜欢
    • 2012-03-27
    • 2015-08-26
    • 2022-01-20
    • 2022-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-11
    • 2016-12-18
    相关资源
    最近更新 更多