C# SQL: получить попытку подключения SQL
Я пытаюсь получить номер попытки попытки SQLConnection, чтобы сообщить пользователю об этих попытках. Ниже вы можете увидеть код, где должно происходить волшебство. "Я" будет номером попытки. Соединение 'con' выдает много исключений SqlException, но я не могу их поймать, как показано ниже. "databaseConnection" представляет строку подключения. В настоящее время он пуст для тестирования. Могу поспорить, что мне чего-то не хватает, но я не могу понять, что, так как я новичок в программировании на SQL в C#. "txtProgressbarWorking" - это метка в пользовательском интерфейсе.
int i = 1;
con = new SqlConnection(databaseConnection);
try
{
con.Open();
}
catch(SqlException s)
{
txtProgressbarWorking.Content = "Connecting... " + (++i);
}
1 ответ
Есть несколько вещей не так с этим кодом:
1) Вы называете это в каком-то цикле? Если нет, ваш i
переменная не будет увеличена.
2) SqlConnection.Open()
бросает несколько видов исключений - не только SqlException
Я полагаю, именно поэтому вы "не можете их поймать", как вы упомянули. В идеале вы должны указать каждое исключение или поймать более высокий уровень System.SystemException
,
3) Ваш код для увеличения индикатора выполнения находится в блоке catch вашего обработчика исключений и будет выполняться только в том случае, если исключение будет перехвачено. Если вы на самом деле вызываете этот код в цикле, вы можете вместо этого переместить код из блока catch в блок try.
4) Ваш ++i
должно быть i++
чтобы i
увеличивается после оператора; либо это, либо инициализировать i
к нулю вместо 1. То, как у вас сейчас, первое значение из i
в вашем блоке будет 2.
Я предлагаю вам взглянуть на [документацию MSDN по SqlConnection.Open Method ()] [1] https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.open%28v=vs.110%29.aspx