Как я могу узнать, существует ли столбец в наборе результатов DataReader?
я стараюсь:
int columnOrdinal = reader.GetOrdinal("LastName");
columnExists = (columnOrdinal < 0);
но GetOrdinal
выдает исключение, если столбец не существует. Мой случай не исключительный. Это наоборот. Это ... ceptional.
Примечание: Не связано с моим вопросом, но реальная причина, по которой я хочу узнать, существует ли столбец, заключается в том, что я хочу получить порядковый номер столбца без исключения, если столбец не существует:
int columnOrdinal = reader.GetOrdinal("Lastname");
Примечание: Не относится к моему вопросу, но real причина, по которой я хочу узнать, существует ли столбец, потому что я хочу знать, существует ли столбец содержит ноль:
itIsNull = reader.IsDBNull(reader.GetOrdinal("Lastname"));
К сожалению, IsDBNull
принимает только порядковый номер, а GetOrdinal
создает исключение. Так что мне осталось:
if (ColumnExists(reader, "Lastname"))
{
itIsNull = reader.IsDBNull(reader.GetOrdinal("Lastname"));
}
else
itIsNull = false;
Примечание: Не связано с моим вопросом, но настоящая причина, по которой я хочу знать, существует ли столбец, заключается в том, что будут моменты, когда столбец не будет присутствовать в наборе результатов, и я не не хочу выдавать результаты обработки базы данных исключений, поскольку это не исключение.