C # DataTable ItemArray возвращает «{}» - как я могу проверить нулевое значение? - PullRequest
11 голосов
/ 02 апреля 2009

У меня есть DataTable resultSet; - я пытаюсь проверить поля на ноль, но получить объект '{}' (empty-set?) Обратно Поиски с использованием "{}" не дают никаких подходящих решений.

Это код, который не работает должным образом, когда поле "fk_id" имеет значение null:

if (resultSet.Rows[0].ItemArray[resultSet.Columns.IndexOf("fk_id")] == null)
{
   //never reaches here
}

Примечание: использование индекса int вместо Columns.IndexOf() не является проблемой.

Также у "{}" есть другое имя в C #?

Ответы [ 3 ]

19 голосов
/ 02 апреля 2009

Чтобы проверить столбец для DBNull в наборе данных, вы можете использовать метод IsNull :

if (resultSet.Rows[0].IsNull("fk_id"))

Ваше сравнение с null, вероятно, не удается, поскольку DataSets не использует null для представления значения "NULL базы данных" - они используют DBNull.Value . Если вам нужно, чтобы ваш код работал так, как вы его представили, попробуйте следующее:

if (resultSet.Rows[0].ItemArray[resultSet.Columns.IndexOf("fk_id")] == DBNull.Value)
0 голосов
/ 26 января 2012

Пожалуйста, используйте:

dataTable.Select("FieldName is NULL")

это даст вам DataRows с нулевыми значениями в столбце FieldName.

0 голосов
/ 17 мая 2011
try
{
    if (DT.Rows[0][0] != null)
    {      
      //your code
    }    
}    
catch    
{    
    MessageBox.Show("AUTHANICATION FAILED.");    
}
...