だから、タイトルラインごとにエラーが出ます。かなり自明のようですが、私の理解は、 "使用"ブロック内のオブジェクトは処分されているということですか?このエラーは、別のマイナーなバグがコードの実行を中断した後に表示されるため、私は閉じているかシャットダウンする必要のあるオープンリーダーに悩まされていますか?どんな助けもありがたいですか?C#/ SQL Serverエラー 'このコマンドに関連付けられている開いているDataReaderは既にありますが、最初に閉じる必要があります。'
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;
}
}
デバッグ時に再現性がありますか? –
@ブライアン私は、同じエラーを再実行、エラーでそれを停止しています。私はcmd.Disposeをデバッグしている間に無駄にしようとしました。 – StatsViaCsh
これに影響を与える可能性のある別の場所で 'this.sqlConnection'と何かしていますか?コード内の別のコマンドオブジェクトが同じ 'SqlConnection'を使用している可能性があり、まだ閉じられていないようです。 –