Я могу проверить на a DBnull
на строке данных с помощью любого из методов.
Любой при помощи
if(dr[0][0]==DBNull.Value)
//do somethin
или путем выполнения
if(dr[0][0].ToString().IsNullOrEmpty())
//do something
В обоих случаях я буду получать тот же результат.
Но Какой является conecptually правильным подходом. То, которое было, будет использовать меньше ресурсов
Первый способ в некоторой степени верен. Однако более приемлемый способ:
if ( dr[0][0] is DBNull )
И второй способ определенно неверен. Если вы воспользуетесь вторым способом, вы получите истинное значение в двух случаях:
Концептуально сравнение с ] DBNull.Value
является правильным.
Вы также можете использовать:
if (Convert.IsDBNull(dr[0]))
{
}
Вы также можете использовать, что мне не нравится, просто потому, что это сравнение типов, а не сравнение значений:
if (dr[0] is DBNull)
{
}
Всегда используется:
dr[0].IsNull(0)
Предполагается, что создатели этой функции знают лучший / наиболее эффективный способ сравнения ..