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

StackOverflow https://stackoverflow.com/questions/707658

  •  22-08-2019
  •  | 
  •  

Вопрос

У меня есть 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top