С# 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.