【发布时间】:2011-04-02 08:00:09
【问题描述】:
在尝试编写一个简单的 C# ADO.NET 应用程序以连接到我的数据库并管理我的网站的项目条目时,我遇到了一个奇怪的问题,我找不到任何相关信息。我已经验证我的 MySQL 服务器正在接受远程连接,侦听端口 3306,提供的用户名和密码有效,并且主机名正确解析。但是,当调用SqlConnection.Open 时,我收到了一个无意义的异常。
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 的值。任何帮助将不胜感激。
【问题讨论】: