Как узнать, существует ли столбец в наборе результатов DataReader?Как получить порядковый номер столбца в DataReader
я попробовать:
int columnOrdinal = reader.GetOrdinal("LastName");
columnExists = (columnOrdinal < 0);
но GetOrdinal
бросает исключение, если столбец не существует. Мой случай не является исключительным. Все наоборот. Это ... ceptional.
Примечание: не связанно с моим вопросом, но, то реальной причины я хочу знать, если столбец существует, потому что я хочу, чтобы получить порядковое положение колонны, без выбрасывания исключения если столбец не существует:
int columnOrdinal = reader.GetOrdinal("Lastname");
Примечание: не связано с моим вопросом, но, то реального причины я хочу знать, если столбец существует, потому что я хочу знать, если столбец содержит нуль:
itIsNull = reader.IsDBNull(reader.GetOrdinal("Lastname"));
К сожалению IsDBNull
занимает порядковый, и GetOrdinal
бросает исключение. Так что я оставил с:
if (ColumnExists(reader, "Lastname"))
{
itIsNull = reader.IsDBNull(reader.GetOrdinal("Lastname"));
}
else
itIsNull = false;
Примечание: не связано с моим вопросом, но реальная причина, я хочу знать, если столбец существует, потому что там будет раз, когда колонка не будет присутствовать в набор результатов, и я не хочу бросать результаты обработки обработки исключений, поскольку это не является исключительным.
NotRelatedToMyQuestionException –
возможно дубликат http://stackoverflow.com/questions/373230/check-for-column-name-in-a-sqldatareader-object – hatchet
@hatchet Это конечно, не метод, который я собираюсь вызывать в каждой строке набора данных –