У меня есть раздел в моем коде, в котором я запрашиваю все базы данных 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;
}
}