所以,我得到了我的标题行错误。似乎很自我解释,但我的理解是,“使用”块内的对象被处置?这个错误出现在另一个小错误中断代码执行后,所以也许我被一个开放的阅读器卡住了,我需要关闭或关闭它?任何帮助,将不胜感激?C#/ SQL Server错误'已经有一个打开的DataReader与这个Command关联,必须先关闭它。'
public override long GetStatsBenchmark(String TableName)
{
using (SqlCommand cmd = new SqlCommand("sprocReturnDataPointBenchmark", this.sqlConnection))
{
cmd.CommandType = System.Data.CommandType.StoredProcedure;
SqlParameter outputParameter = new SqlParameter
{
ParameterName = "@benchmark",
Direction = System.Data.ParameterDirection.Output,
SqlDbType = System.Data.SqlDbType.BigInt,
};
cmd.Parameters.Add(outputParameter);
SqlParameter inputParameter = new SqlParameter
{
ParameterName = "@tblName",
Direction = System.Data.ParameterDirection.Input,
SqlDbType = System.Data.SqlDbType.NVarChar,
Value = TableName
};
cmd.Parameters.Add(inputParameter);
cmd.ExecuteNonQuery();
return (long)outputParameter.Value;
}
}
它是可重复的还是只发生一次当你正在调试? – 2012-03-31 00:06:48
@Bryan我一直在阻止它的错误,重新运行,同样的错误。我试着调试cmd.Dispose,无济于事。 – StatsViaCsh 2012-03-31 00:08:39
你是否正在做其他任何可能会影响到这个的'this.sqlConnection'?这听起来像另一个命令对象在你的代码中的其他地方可能使用相同的'SqlConnection',它还没有关闭。 – 2012-03-31 00:14:43