C# DataTable ItemArray возвращает '{} ' - как я могу проверить значение null?
у меня есть DataTable resultSet;
- Я пытаюсь проверить поля на null, но получаю " {} "(пустой набор ?) объект обратно. Поиск с использованием "{} " не дает никаких соответствующих решений.
это код, который работает не так, как ожидалось, когда поле "fk_id" равно null:
if (resultSet.Rows[0].ItemArray[resultSet.Columns.IndexOf("fk_id")] == null)
{
//never reaches here
}
Примечание: использование индекса int вместо Columns.IndexOf()
это не проблема.
также имеет ли "{} " какое-то другое имя в C#?
3 ответов
чтобы проверить столбец для DBNull в наборе данных, вы можете использовать функции isnull способ:
if (resultSet.Rows[0].IsNull("fk_id"))
ваше сравнение против null
вероятно, сбой, потому что наборы данных не используют null
для представления значения "database NULL" - они используют значение dbnull.Значение. Если вам нужно, чтобы ваш код работал так, как вы его представили, попробуйте следующее:
if (resultSet.Rows[0].ItemArray[resultSet.Columns.IndexOf("fk_id")] == DBNull.Value)
try
{
if (DT.Rows[0][0] != null)
{
//your code
}
}
catch
{
MessageBox.Show("AUTHANICATION FAILED.");
}
пожалуйста, используйте:
dataTable.Select("FieldName is NULL")
это даст вам DataRows со значениями null в столбце FieldName.