как проверить, является ли datareader нулевым или пустым - PullRequest
44 голосов
/ 18 апреля 2009

У меня есть устройство чтения данных, которое возвращает список записей из базы данных сервера SQL. У меня есть поле в базе данных под названием «Дополнительно». Это поле в 50% случаев пустое или пустое.

Я пытаюсь написать код, который проверяет, является ли это поле пустым. Логика этого заключается в следующем: Если поле «Дополнительно» содержит текст, отобразите информацию, в противном случае скрывайте поле.

Я пробовал:

if (myReader["Additional"] != null)
{
    ltlAdditional.Text = "contains data";
}
else
{
     ltlAdditional.Text = "is null";
}

Приведенный выше код дает мне эту ошибку:

Сведения об исключении: System.IndexOutOfRangeException: Дополнительно

Любая помощь будет принята с благодарностью ...


Смотрите также:

Проверка имени столбца в объекте SqlDataReader

Ответы [ 12 ]

0 голосов
/ 16 октября 2011

Я также сталкиваюсь с такой проблемой, но моя, я использую DbDataReader в качестве универсального читателя (для SQL, Oracle, OleDb и т. Д.) Если используется DataTable, DataTable имеет этот метод:

DataTable dt = new DataTable();
dt.Rows[0].Table.Columns.Contains("SampleColumn");

используя это, я могу определить, существует ли этот столбец в наборе результатов, который есть в моем запросе. Я также смотрю, если DbDataReader имеет эту возможность.

0 голосов
/ 18 апреля 2009

AMG - Извините, был блондин. Поле «Дополнительно» было добавлено в базу данных после того, как я изначально проектировал базу данных.

Я обновил весь свой код, чтобы использовать это новое поле, однако я забыл обновить фактический код устройства чтения данных, который выполнял вызов для выбора полей базы данных, поэтому он не вызывал «Дополнительно»

...