SqlDataReader - 无法对 Null 值调用此方法或 属性
SqlDataReader - This method or property cannot be called on Null values
我正在使用SqlDataReader
读取数据
SqlDataReader reader;
connection.Open();
...
...
reader = command.ExecuteReader();
while(reader.Read())
{
var address = new Adress()
{
House = reader.GetString(1)
}
为什么 reader.GetString(1)
抛出错误
Data is Null. This method or property cannot be called on Null values.
令人惊讶的数据可用。
请让我知道我在这里做错了什么..
您可以使用以下任一方法检查该值是否为空并适当处理:
if (reader.IsDBNull(1))
或
if (reader["FieldName"] == DBNull.Value)
Call IsDBNull to check for null values before calling this method.
这意味着该方法无法保护您的代码免受 row/field
中空值的影响
var address = new Adress()
{
House = reader.IsDbNull(1) ? "" : reader.GetString(1),
....
}
当然,这假定您需要一个空字符串以防您的字段为空,如果不是这种情况,那么您可以将您喜欢的任何内容放入条件运算符的真实部分或抛出您自己的异常。
我正在使用SqlDataReader
读取数据
SqlDataReader reader;
connection.Open();
...
...
reader = command.ExecuteReader();
while(reader.Read())
{
var address = new Adress()
{
House = reader.GetString(1)
}
为什么 reader.GetString(1)
抛出错误
Data is Null. This method or property cannot be called on Null values.
令人惊讶的数据可用。
请让我知道我在这里做错了什么..
您可以使用以下任一方法检查该值是否为空并适当处理:
if (reader.IsDBNull(1))
或
if (reader["FieldName"] == DBNull.Value)
Call IsDBNull to check for null values before calling this method.
这意味着该方法无法保护您的代码免受 row/field
中空值的影响 var address = new Adress()
{
House = reader.IsDbNull(1) ? "" : reader.GetString(1),
....
}
当然,这假定您需要一个空字符串以防您的字段为空,如果不是这种情况,那么您可以将您喜欢的任何内容放入条件运算符的真实部分或抛出您自己的异常。