Вы говорите «кроме rdr.Read()
метода», но мне кажется, что это самый естественный подход.
Вызовите Read()
, и, если он вернет true, заполните результат, в противном случае установите для результата значение null.
Также обратите внимание, что
catch (Exception e)
{
throw;
}
обычно является мерзостью, которую следует удалить.Я также поставил бы под сомнение проект и реализацию, которая:
- Игнорируемые соглашения об именах (
getSites
) - Использовали возвращаемое значение
bool
, но всегда возвращали true, и out
параметр для реальных результатов - Не располагает самой командой
- Объявлен метод
rdr
до того, как он понадобится, без видимой причины.(В любом случае это не будет полезным вне оператора using
, так почему бы не объявить его там?)