Как проверить, было ли мое соединение C # - MySQL успешным или, если это не так, вернуть почему? - PullRequest
1 голос
/ 12 июля 2011

Я немного борюсь с этим куском кода на C #. По сути, я пытаюсь создать какой-то механизм проверки правильности комбинации имени пользователя и пароля для моего SQL-сервера, а затем проверить, существует ли база данных.

Строка подключения будет выглядеть так:

connectionString = 
   "database=test;server=localhost;uid=" + usr.Text + ";pwd=" + pwd.Text;

Я пытаюсь найти решение, которое может проверить возникшее исключение и сказать, имеет ли дело неправильный пароль, неправильный пользователь, не найденная база данных и так далее. Я видел использование DbConnectionStringBuilder в некоторых местах, но я не уверен, как мне его использовать.

Ответы [ 2 ]

7 голосов
/ 12 июля 2011
   string connectionString = "database=test;server=localhost;uid=" + usr.Text + ";pwd=" + pwd.Text;
   using (SqlConnection conn = new SqlConnection(connectionString))
   {
     try
     {
       conn.Open();
     }
     catch (SqlException ex)
     {
       switch (ex.Number) 
       { 
         case 4060: // Invalid Database 
          ....
          break;
         case 18456: // Login Failed 
          ....
          break;
         default:
          ....
          break;
       } 
     }
   }

Полный список номеров исключений Sql Server можно найти, запустив

SELECT * FROM master.dbo.sysmessages
1 голос
/ 12 июля 2011

DbConnection.Open() завершится с ошибочными учетными данными.

...