CodeGo.net>如何找到未关闭的DataReader?
作者:互联网
我在ASP.Net 1.1中维护着一个大型应用程序,该应用程序已被许多人(包括学生)更改.显然,该代码很少被审查,因此它有很多……错误……愚蠢的错误.问题最多的是永不关闭的DataReader.
到处都有,每页最多十个.由于该项目大约有一百个页面,其中包含300个类,因此我很沮丧地想找到所有未关闭的DataReader.
我知道这是没有希望的,但是有找到所有未封闭的DataReader的简便方法吗?某些软件或Visual Studio 2003进行了调整…
解决方法:
嗯,使用DataReader的“正确”方法是
using (SqlDataReader dr = ...) {
...
}
要么
SqlDataReader dr = ...
try {
...
} finally {
dr.Close();
}
因此,简单的解决方案是对SqlDataReader和IDataReader进行全项目搜索.如果是
>不在using子句中或
>没有立即跟随尝试
那么最有可能使用不正确,需要对其进行修复.
请注意以下代码:
SqlDataReader dr = ...
...
// do something
...
dr.Close();
是不正确的,因为在执行某操作期间引发的异常将使DataReader保持打开状态.
标签:datareader,c 来源: https://codeday.me/bug/20191102/1994479.html