ServerVersion ='cmd.Connection.ServerVersion'引发了类型'System.InvalidOperationException'的异常

时间:2014-01-28 04:57:48

标签: asp.net sql sql-server-2008

我注意到其他一些人也有同样的问题,但无法找到解决方案。我的ASP.NET应用程序运行良好,突然体验到了这一点。它不会抛出任何异常,但存储过程不像以前那样返回值。当我调试程序时发现我的SqlCommand存在问题。

SqlCommand cmd = new SqlCommand();
cmd.Parameters.AddWithValue("@UserID", Convert.ToInt64(Request.QueryString["UserID"]));
DataTable dtuser = db.GetDataTable(cmd, "sp_GetUserbyUserId");

我添加了一块手表并查看cmdConnection显示上述消息的ServerVersion媒体资源以及Message属性"Invalid operation. The connection is closed."。我认为我的SP因此没有运作。这会是什么问题? 最近我在web.config中所做的更改只是在<appSettings/>

下添加新字段

修改
以下是我的DBHandler类方法,该方法由上面的db实例调用。

public class DBHandler
{
    private string connectionString = "";
    public DBHandler()
    {    
        connectionString = WebConfigurationManager.ConnectionStrings["myConString"].ConnectionString.ToString();
    }

    public DataTable GetDataTable(SqlCommand sqlcmdWithParameters, string CommandText)
        {
            DataTable dtReturn = new DataTable();
            SqlDataAdapter sqlda = new SqlDataAdapter(sqlcmdWithParameters);

            using (SqlConnection sqlcon = new SqlConnection(connectionString))
            {
                sqlcmdWithParameters.Connection = sqlcon;
                sqlcmdWithParameters.CommandType = CommandType.StoredProcedure;
                sqlcmdWithParameters.CommandText = CommandText;
                try
                {
                    DataSet ds = new DataSet();
                    sqlda.Fill(ds, "Table");
                    dtReturn = ds.Tables["Table"];
                }
                catch (Exception ex)
                {
                   //Handling Exceptions
                }
            }
            return dtReturn;
        }
}

我在Web.config中的连接字符串如下

<connectionStrings>    
    <add name="myConString" connectionString="Data Source=xxx.xxx.x.x;Initial Catalog=myDB;User ID=myId;Password = myPWD" providerName="System.Data.SqlClient" />
  </connectionStrings>

1 个答案:

答案 0 :(得分:0)

我遇到了同样的错误。在我使用Visual Studio 2013 Open的机器上,我卸载并重新安装了我的Oracle数据提供程序。

在重新安装Oracle之后,我运行了我正在运行的asp.net应用程序并在尝试创建时开始收到此错误,但是打开数据库连接。

关闭Visual Studio并重新打开后,错误就消失了。也许关于我的“ServerVersion”的东西被无效,然后在我重新打开Visual Studio时重置。