我创建了一个连接和一个 SqlReader 但忘记关闭它们:
SqlConnection conn = new SqlConnection("connection info");
conn.Open();
string sql = "SQL command HERE";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader reader = cmd.ExecuteReader();
现在,当尝试再次运行代码时,它总是给我这个错误:
System.InvalidOperationException: There is already an open DataReader associated with this Command which must be closed first.
该链接告诉我如何正确打开和关闭连接,但没有解释如何关闭仍在运行的连接。
我尝试关闭电脑,尝试查看 SQL 服务器上的数据库选项(发现没有用)...我更改了代码以关闭连接和阅读器(它已编译并运行,但问题仍然存在改回代码后)。
如何关闭这个“幽灵”连接?有没有办法(蛮力)关闭所有正在运行的连接?
[编辑:]我无法真正解决问题。解决方法是添加MultipleActiveResultSets=true
到连接字符串