Что я должен использовать для сравнения DBNull? Использование DBNull. Значение или ToString ().IsNullOrEmpty ()

Я могу проверить на a DBnull на строке данных с помощью любого из методов.

Любой при помощи

if(dr[0][0]==DBNull.Value)
//do somethin

или путем выполнения

if(dr[0][0].ToString().IsNullOrEmpty())
//do something

В обоих случаях я буду получать тот же результат.

Но Какой является conecptually правильным подходом. То, которое было, будет использовать меньше ресурсов

21
задан Rob 3 August 2010 в 06:11
поделиться

3 ответа

Первый способ в некоторой степени верен. Однако более приемлемый способ:

if ( dr[0][0] is DBNull )

И второй способ определенно неверен. Если вы воспользуетесь вторым способом, вы получите истинное значение в двух случаях:

  1. Ваше значение - DBNull
  2. Ваше значение - пустая строка
19
ответ дан 29 November 2019 в 21:41
поделиться

Концептуально сравнение с ] DBNull.Value является правильным.

Вы также можете использовать:

if (Convert.IsDBNull(dr[0]))
{
}

Вы также можете использовать, что мне не нравится, просто потому, что это сравнение типов, а не сравнение значений:

if (dr[0] is DBNull)
{
}
6
ответ дан 29 November 2019 в 21:41
поделиться

Всегда используется:

dr[0].IsNull(0) 

Предполагается, что создатели этой функции знают лучший / наиболее эффективный способ сравнения ..

0
ответ дан 29 November 2019 в 21:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: