我遇到了一些麻烦.我在一个使用块中有一个SqlCommand.通常这很好.但是,这次代码退出使用块,但命令没有被释放.这让我很难过.
using (SqlCommand transferCommand = new SqlCommand(strHeaderStoredProcedure, connection))
{
transferCommand.CommandType = System.Data.CommandType.StoredProcedure;
transferCommand.Parameters.Add("@InvtTransferID", SqlDbType.UniqueIdentifier).Value = InvtTransferID;
SqlDataReader transferReader = transferCommand.ExecuteReader();
while (transferReader.Read())
{
//do my stuff, this all works fine
}
}
using (SqlCommand transferCommand = new SqlCommand(strDetailsStoredProcedure, connection))
{
transferCommand.CommandType = System.Data.CommandType.StoredProcedure;
transferCommand.Parameters.Add("@InvtTransferID", SqlDbType.UniqueIdentifier).Value = InvtTransferID;
SqlDataReader transferReader = transferCommand.ExecuteReader(); <-- Error happens here.
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试重用我的连接来运行一堆存储过程.这是最奇怪的事情.我在另一个几乎相同的表单上有一些代码,它运行正常,处理命令并允许我创建另一个.我有什么想法我做错了吗?(我正试图让这段代码在帖子中看起来不错,但它似乎超出了我的微薄力量...对于凌乱的代码感到抱歉.)
错误是:已经有一个与此命令关联的打开DataReader,必须先关闭它.