代码之家  ›  专栏  ›  技术社区  ›  Sion Sheevok

什么导致ArgumentOutOfRangeException打开SqlConnection.打开()?

  •  1
  • Sion Sheevok  · 技术社区  · 14 年前

    写一个简单的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
        }
    }
    

    CConnectionDescription 我自己。任何帮助都将不胜感激。

    1 回复  |  直到 4 年前
        1
  •  3
  •   goenning    14 年前

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