Try- «Поймать и продолжить» - возможно ли это?

У меня есть раздел в моем коде, в котором я запрашиваю все базы данных SQL Server в моей сети. Сначала я пытаюсь использовать учетную запись SQL для доступа к экземпляру SQL Server, но если это не удается, я хочу попробовать подключиться с использованием моих учетных данных Windows. После этого, если я все еще не могу подключиться, я хочу, чтобы код не работал, а затем уведомлял пользователя.

Итак, я предполагаю, что я спрашиваю, как я могу вернуться изнутри блока Try-Catch к строке чуть выше блока Try-Catch:

String conxString = @"Data Source=SQLInstance1;User ID=FOO;Password=BAR;";
bool secondTime = false;

using (SqlConnection sqlConx = new SqlConnection(conxString))
     {
         Try{
               sqlConx.Open();
               DataTable tblDatabases = sqlConx.GetSchema("Databases");
               sqlConx.Close();
               secondTime = false;
               Console.WriteLine("SQL Server found!");
         }
         Catch(System.Data.SqlClient.SqlException e){
                if (!secondTime){
                   secondTime = true;
                   conxString = @"Data Source=SQLInstance1; Integrated Security=True;";
                      //Loop back to the using statement to try again with Windows Creds
                {
                 else{
                   Console.WriteLine("SQL Server not found or credentials refused");
                 }
                   //Report Failure to connect to user

         }
         finally{
            //Reset Variable
            secondTime = false;
         }

      }
5
задан Mark Kram 12 September 2012 в 02:53
поделиться