我正在使用SqlDataReader
来读取数据
SqlDataReader reader;
connection.Open();
...
...
reader = command.ExecuteReader();
while(reader.Read())
{
var address = new Adress()
{
House = reader.GetString(1)
}
为什么reader.GetString(1)
会抛出错误
数据是空的。无法在Null值上调用此方法或属性。
令人惊讶的是数据可用。
请让我知道我在这里做错了什么..
答案 0 :(得分:3)
在调用此方法之前,调用IsDBNull检查空值。
这意味着该方法不会保护您的代码不受行/字段中空值的影响
var singleColumn = [234, -23, 45, 109];
for (var i = 0; i < singleColumn.length; i++) {
singleColumn[i] = [singleColumn[i], i];
}
当然这假设你想要一个空字符串,以防你的字段为空,如果不是这样,那么你可以在条件运算符的真实部分放置你喜欢的任何东西,或抛出你自己的异常。
答案 1 :(得分:1)
您可以使用以下任一方法检查该值是否为null并正确处理:
if (reader.IsDBNull(1))
或
if (reader["FieldName"] == DBNull.Value)