C # DataTable itemArray возвращает '{}' - как я могу проверить наличие нулевого значения?
Вопрос
У меня есть DataTable resultSet;
- Я пытаюсь проверить поля на наличие null, но получаю обратно объект '{}' (empty-set ?).Поиски, включающие "{}", не дают никаких подходящих решений.
Это код, который работает не так, как ожидалось, когда поле "fk_id" равно нулю:
if (resultSet.Rows[0].ItemArray[resultSet.Columns.IndexOf("fk_id")] == null)
{
//never reaches here
}
Примечание:используя индекс int вместо Columns.IndexOf()
проблема не в этом.
Также есть ли у "{}" какое-то другое имя в C #?
Решение
Чтобы проверить столбец на наличие DBNull в наборе данных, вы можете использовать Нет способ:
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")
это выдаст вам потоки данных с нулевыми значениями в столбце FieldName.