SQL Server:丢失连接后重新连接

时间:2014-11-26 07:28:28

标签: c# sql-server wpf

我想要打开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();
    }
}

1 个答案:

答案 0 :(得分:0)

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

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
}