如何检查我的C# - MySQL连接是否成功,如果不成功,则返回原因?

时间:2011-07-12 14:36:21

标签: c# mysql exception login connection

我正在努力使用这段C#代码。基本上,我正在尝试做的是某种机制来检查我的SQL服务器的用户和密码组合是否正确,然后检查数据库是否存在。

连接字符串将是这样的:

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

我试图达到的解决方案是可以检查抛出的异常,并告诉它是否是错误的密码,错误的用户,未找到的数据库等等。我在某些地方看到过使用DbConnectionStringBuilder,但我不确定应该如何使用它。

2 个答案:

答案 0 :(得分:7)

   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 :(得分:1)

DbConnection.Open()将因无效凭据而失败。