2010-08-22 71 views
1

在试图编写一个简单的C#ADO.NET应用程序来连接到我的数据库并管理我的网站的项目条目时,我遇到了一个奇怪的问题,我找不到任何有关的信息。我已验证我的MySQL服务器正在接受远程连接,在端口3306上侦听,所提供的用户名是有效的,密码也是如此,并且主机名正确解析。但是,当调用SqlConnection.Open时,我收到一个无意义的异常。是什么导致SqlConnection.Open()上的ArgumentOutOfRangeException?

System.ArgumentOutOfRangeException是需要未处理

非负数。

参数名:算

下面是调用表示错误代码,特别是在电话会议中m_ActiveConnection.Open()

static public void OpenConnection(CConnectionDescription ConnectionDescription) 
{ 
    try 
    { 
     SqlConnectionStringBuilder ConnectionStringBuilder = new SqlConnectionStringBuilder(); 
     ConnectionStringBuilder.DataSource = ConnectionDescription.Address + "," + ConnectionDescription.PortNumber; 
     ConnectionStringBuilder.UserID = ConnectionDescription.UserName; 
     ConnectionStringBuilder.Password = ConnectionDescription.Password; 
     ConnectionStringBuilder.NetworkLibrary = "DBMSSOCN"; 

     if (m_ActiveConnection != null) 
     { 
      if (m_ActiveConnection.State != System.Data.ConnectionState.Closed) 
      { 
       m_ActiveConnection.Close(); 
      } 
      m_ActiveConnection.ConnectionString = ConnectionStringBuilder.ConnectionString; 
     } 
     else 
     { 
      m_ActiveConnection = new SqlConnection(ConnectionStringBuilder.ConnectionString); 
     } 
     m_ActiveConnection.Open(); 
     m_ActiveConnectionDescription = ConnectionDescription; 

     if (ConnectionChanged != null) 
     { 
      ConnectionChanged(); 
     } 
    } 
    finally 
    { 
     // Error message 
    } 
} 

什么会导致此异常?我没有传递任何参数来打开和ConnectionString似乎完全有效。我检查了我自己的CConnectionDescription的值。任何帮助,将不胜感激。

回答

3

据我所知,SqlConnection用于连接到SqlServer数据库。你应该使用“MySQL Connector/Net”中的MySqlConnection。

+0

我应该预料到的,但我希望他们会指定MSSQL,如果是这样的话。然后我将切换到使用MySQL Connector/Net。非常感谢先生。 – 2010-08-22 17:44:10

相关问题