Tôi muốn lấy các giá trị thập phân từ cơ sở dữ liệu và tôi muốn biết đó là cách được khuyến nghị để kiểm tra các giá trị null.SqlDataReader Cách tốt nhất để kiểm tra các giá trị null -sqlDataReader.IsDBNull vs DBNull.Value
Tôi đã xem trên MSDN - DBNull.Value Field rằng séc này hiếm khi được sử dụng.
Do đó, cách reader.IsDBNull
là cách tốt nhất/hiệu quả nhất để kiểm tra giá trị rỗng?
Tôi đã tạo ra 2 phương pháp mẫu:
public static decimal? GetNullableDecimal(SqlDataReader reader, string fieldName)
{
if (reader[fieldName] == DBNull.Value)
{
return null;
}
return (decimal)reader[fieldName];
}
public static decimal? GetNullableDecimal_2(SqlDataReader reader, string fieldName)
{
if (reader.IsDBNull(reader[fieldName]))
{
return null;
}
return (decimal)reader[fieldName];
}
Phần lớn thời gian các lĩnh vực sẽ được null.
Cảm ơn trước!
Bạn thích cái nào nhất và dễ đọc nhất. Tuy nhiên, đáng chú ý là các ví dụ của bạn không hoàn toàn tương đương với việc sử dụng 'reader.GetOrdinal' trong lần thứ hai. –
Nội bộ cú pháp 'reader [fieldName]' được giải quyết cho 'reader.GetOrdinal (fieldName)' – Steve
Tôi đã sửa đổi ví dụ để sử dụng trình đọc [fieldName] trong cả hai trường hợp – diver