什么原因导致SqlConnection.Open()上的ArgumentOutOfRangeException?

时间:2010-08-22 17:31:44

标签: c# mysql ado.net

在尝试编写一个简单的C#ADO.NET应用程序以连接到我的数据库并管理我的网站的项目条目时,我遇到了一个奇怪的问题,我找不到任何有关的信息。我已经验证我的MySQL服务器正在接受远程连接,侦听端口3306,提供的用户名是有效的,密码也是如此,主机名正确解析。但是,当调用SqlConnection.Open时,我会收到一个荒谬的例外。

  

System.ArgumentOutOfRangeException未处理

     

需要非负数。

     

参数名称:count

以下是调用所述错误的代码,特别是在调用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我自己的值。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

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