Czy istnieje sposób sprawdzenia, czy pole istnieje w obiekcie opartym na IDataReader bez sprawdzania indeksu IndexOutOfRangeException?Sprawdzanie, czy kolumna istnieje w czytniku danych
W istocie mam metodę, która pobiera obiekt oparty na IDataReader i tworzy listę wpisów z silnym typem. W jednym przypadku jeden czytnik danych ma pole, którego inni nie. Naprawdę nie chcę przepisywać wszystkich zapytań, które zasilają tę metodę, aby zawrzeć jakąś formę tego pola, jeśli nie muszę. Jedyny sposób, w jaki udało mi się wymyślić, jak to zrobić, to rzucić jedno unikalne pole do bloku prób/catch, jak pokazano poniżej.
try
{
tmp.OptionalField = reader["optionalfield"].ToString();
}
catch (IndexOutOfRangeException ex)
{
//do nothing
}
Czy istnieje przejrzysty sposób krótki dodawania „opcjonalne pole” do innych zapytań lub kopiowanie metodę ładowania tak 1 wersja wykorzystuje pole opcjonalne, a inne nie?
Jestem również w ramach 2.0.
Zastanawiam się dlaczego MS nie został dodany tej funkcji DataReader – FLICKER