C# 获取与此命令关联的已打开DataReader中的错误,必须先关闭该命令
我知道这是一个重复的问题,但我尝试添加MARSC# 获取与此命令关联的已打开DataReader中的错误,必须先关闭该命令,c#,asp.net,.net,sql-server,C#,Asp.net,.net,Sql Server,我知道这是一个重复的问题,但我尝试添加MARSMultipleActiveResultSets=True在我的连接字符串中,它不起作用,但仍然遇到相同的问题。我正在使用SQLServerManagementStudio v17.5 这是我的连接字符串 <connectionStrings> <add name="DefaultConnection" connectionString="Server=myserver;Database=mydb;Use
MultipleActiveResultSets=True代码>在我的连接字符串中,它不起作用,但仍然遇到相同的问题。我正在使用SQLServerManagementStudio v17.5
这是我的连接字符串
<connectionStrings>
<add name="DefaultConnection"
connectionString="Server=myserver;Database=mydb;User ID=myuser;Password=mypassword;MultipleActiveResultSets=True;"
providerName="System.Data.SqlClient" />
</connectionStrings>
然后是另一个带有多个数据读取器的交换机
switch (queryType)
{
case "SelectAHTQ":
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.CommandText = "SP_1";
// fails here--> SqlDataReader AHTReader = sqlCmd.ExecuteReader();
while (AHTReader.Read())
{
LiveAHTDetails details = new LiveAHTDetails();
details.AHT = AHTReader.GetDouble(0);
details.ccName = AHTReader.GetString(1);
details.connectionID = connectionId;
this.liveStatus.liveDetails.Add(details);
}
break;
.....
谢谢在执行另一条SQL语句之前,您必须关闭DataReader对象。您还需要共享导致此错误的代码。您能告诉我们您遇到此错误的代码吗?(顺便说一句,17.5将是您正在使用的Sql Server Management Studio的版本,而不是您正在连接的Sql Server数据库,可以通过运行SELECT@@version
)找到该数据库Sql Server的版本是2012@Diado。我读了5遍标题,仍然不明白。您能说得更清楚一点吗?“已经有一个与此命令关联的打开的DataReader,必须先关闭它”是当我尝试使用多个DataReader时遇到的一个错误。我希望避免多次打开和关闭连接,尤其是在我使用高服务器需求查询时。连接池将不再是一个问题。只需关闭数据阅读器。
switch (queryType)
{
case "SelectAHTQ":
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.CommandText = "SP_1";
// fails here--> SqlDataReader AHTReader = sqlCmd.ExecuteReader();
while (AHTReader.Read())
{
LiveAHTDetails details = new LiveAHTDetails();
details.AHT = AHTReader.GetDouble(0);
details.ccName = AHTReader.GetString(1);
details.connectionID = connectionId;
this.liveStatus.liveDetails.Add(details);
}
break;
.....