Привязка SqlDataReader к выпадающему списку - EntLib 5.0 - PullRequest
1 голос
/ 19 августа 2010

Я нахожусь в процессе обновления приложения до VS 2010 с использованием EntLib 5. В приложении в его нынешнем виде есть множество случаев, когда выпадающий список привязан к SqlDataReader.Однако, прежде чем он будет связан, я использую свойство HasRows, чтобы увидеть, пуст ли DataReader.Так как метод ExecuteReader в EntLib 5.0 возвращает IDataReader, чтобы сделать то же самое, мне нужно преобразовать IDataReader в RefCountingDataReader, а затем привести свойство InnerReader к SqlDataReader.

Using rdr As SqlDataReader = CType(CType(db.ExecuteReader("spname"), RefCountingDataReader).InnerReader, SqlDataReader)

Я нашел этот обходной путь в Интернете, и он был решен во многих местах (включая SO).

Однако другой альтернативой является загрузка IDataReader в DataTable, проверка количества строк, а затем привязка этого к раскрывающемуся списку.Какой вариант лучше?Или другой вариант оптимален?

Извините, что так долго и растянулся.Любой совет будет потрясающим.

1 Ответ

0 голосов
/ 03 мая 2019

Если вы используете IDataReader для заполнения чего-либо, что затем связано с вашим выпадающим списком, вы потратите незначительное количество времени на это преобразование, а затем всякий раз, когда вам понадобится просмотреть или отладить этот код, вы потенциально сохранитезначительное количество времени пытаясь выяснить, что происходит или что не так.

Итак, хотя я не обязательно помещал бы это в DataTable, я бы помещал это во что-то.Я бы лично предложил поместить его либо в анонимный объект, либо во вложенный класс (тот, который виден только в классе, который его использует).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...