Ускоренная выборка
| Индекс материала |
|---|
| Ускоренная выборка |
| Страница 2 |
| Страница 3 |
Объект DataReader предоставляет параметризированное свойство Item. В предыдущем фрагменте кода свойство Item неявно использовалось для доступа к значениям столбцов CustomerlD и CompanyName набора результатов. Тем не менее такой код неэффективен. Поэтому разработчики придумали целых два способа повысить его производительность. Поиск по порядковым номерам В приведенном ранее фрагменте кода указано имя столбца.
Чтобы вернуть соответствующее значение, объект DataReader должен найти этот столбец во внутренней структуре набора результатов, основываясь на переданной вами строке. Помните: в данном случае мы просим объект DataReader выполнить поиск по заданной строке во всех записях набора результатов. Если указать индекс или порядковый номер столбца, производительность кода повысится.
Данный метод программирования применим практически ко всем объектам, предоставляющим наборы. Я рекомендовал его многим разработчикам, использовавшим ADO в своем коде и искавшим способы повышения производительности. Большинство из них согласились, что производительность возросла, однако некоторые опасались, что их приложения станут менее гибкими. Порядок столбцов в наборе результатов меняется, только если вы меняете строку запроса или структуру объекта БД (таблицы, представления или хранимой процедуры) и выбираете все возвращаемые этим объектом столбцы. В большинстве приложений можно без каких-либо проблем жестко задать порядковые номера всех столбцов. Тем не менее в некоторых ситуациях вам известно только имя столбца, но не его порядковый номер. DataReader предлагает изящный способ определить порядковый номер столбца по имени последнего.
Метод GetOrdinal принимает строку, представляющую имя столбца, и возвращает целое значение, соответствующее порядковому номеру столбца. Этот метод — весьма приятное усовершенствование объектной модели ADO. NET; он позволяет повысить производительность без потери гибкости, которую предоставляет поиск по заданной строке. Следующий фрагмент кода развивает идею оригинального фрагмента, использующего объект DataReader, Сначала он с помощью метода GetOrdinal получает порядковые номера двух нужных нам столбцов и затем использует эти значения для просмотра содержимого каждой записи.
Это повышает производительность, т. к. построчный поиск набора выполняется в столбце только один раз. В оригинальном фрагменте кода построчный поиск производился при каждой выборке данных из столбца. Visual Basic. NET Dim rdr As OleDbDataReader = cmd.
Основы работы с Microsoft ADO.NET
Использование поставщика данных .NET
Метео


