使用调用该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
}
}
}
}
该while (reader.Read())
线带有下划线。
我的问题是阅读器对象何时会为空?我从来没有遇到过它,文档也没有提到它可能是。我应该检查它是否为空还是可以安全忽略?
为什么 ReSharper 会认为它可能为空,例如,它允许我使用 SqlCommand 而不建议检查它是否为空?我猜 ExecuteReader 方法上有一个属性。