Ray*_*Ray 12 .net resharper sqlcommand nullreferenceexception
当使用调用SqlCommand.ExecuteReader()方法时,ReSharper告诉我,当我之后使用SqlDataReader对象时,我有一个可能的NullReference异常.
所以使用以下代码:
using (SqlConnection connection = GetConnection())
{
using (SqlCommand cmd = connection.CreateCommand())
{
cmd.CommandText = ; //snip
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
//snip
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
该while (reader.Read())行加下划线.
我的问题是读者对象何时会为空?我从来没有遇到它,文档没有提到它可能.我应该检查它是否为空或是否可以安全忽略?
为什么ReSharper认为它可能为null,例如它让我使用SqlCommand而不建议检查null?我猜是ExecuteReader方法有一个属性.
Tat*_*eva 12
这是误报.
反思SqlDataReader.ExecuteReader,我可以看到读取器返回null的唯一方法是,如果内部RunExecuteReader方法为returnStream传递'false',它不是.
在SqlDataReader的深处,总是会在某个时刻调用一个 reader构造函数,所以我很确定ExecuteReader在物理上不可能返回null.
| 归档时间: |
|
| 查看次数: |
8923 次 |
| 最近记录: |