С# DataTable ItemArray возвращает '{}' - как я могу проверить значение null?

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

Это код, который не работает так, как ожидалось, когда поле "fk_id" равно null:

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

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

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

Ответ 1

Чтобы проверить столбец DBNull в DataSet, вы можете использовать метод 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)

Ответ 2

try
{
    if (DT.Rows[0][0] != null)
    {      
      //your code
    }    
}    
catch    
{    
    MessageBox.Show("AUTHANICATION FAILED.");    
}

Ответ 3

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

dataTable.Select("FieldName is NULL")

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