Реклама:

Если мы применяем команды данных для чтения записей в режиме forward-only, мы должны понимать физику процесса. Когда мы считываем (при помощи ри-дера данных) запись из провайдера, следующая запись не считывается до следующего обращения к методу Read ридера. Поэтому чем быстрее обрабатываются считанные записи в приложении, тем меньшее время мы будем держать соединение открытым и недоступным другим процессам и пользователям. Если обработка каждой считанной записи занимает длительное время, от использования команд данных лучше отказаться и использовать наборы данных. В них "заливают" из источника данных все, что нужно, и сразу же отключают соединение. А затем сколько душе угодно обрабатывают данные в физически отсоединенном от источника данных наборе.

5.1.2. Объекты команд данных

Известно два класса команд данных:

• System.Data.SqlClient.SqlCommand - команда, "заточенная" для вазимо-действия с SQL Server версии 7.0 и выше;

• System.Data.OleDb.OleDbCommand - команда данных для взаимодействия с произвольным OLD DB-источником данных.

Приводимые ниже примеры мы будем рассматривать для объектов класса

SqlCommand.

5.1.3. Создание команды данных

5.1.3.1. Создание объектов команд данных на шаге разработки приложения

Для создания команды данных во время разработки приложения нужно:

• На панели Toolbox выбрать закладку Data, отметить компонент SqlCommand или OleDBCommand и перетащить его в форму. В форме будет создан объект команды соответствующего типа.

• Отметить объект команды в форме и задать свойства Connection (ссылка на соединение), CommandType (тип команды), CommandText (текст запроса к источнику данных), Parameters (параметры - для параметрических запросов).

Текст запроса, выполняемый командой, можно задать в свойстве CommandText в окне свойств вручную. Можно также вызвать Query Bilder, который построит текст запроса команды данных за вас. Для вызова Query Bilder следует сначала установить значение свойства Connection, поместив в него ссылку на нужный объект соединения, а затем нажать кнопку эллипса (...) в поле свойства CommandText в окне свойств. Query Bilder считает имена всех таблиц, просмотров, функций и пр. из того источника данных, с которым установлено соединение (рис. 5.1). рис. 5.1

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

Выберем нужную таблицу (просмотр, функцию) и нажмем кнопку Add. Можно выбрать также две и более таблицы с тем, чтобы впоследствии выполнить их соединение. Это, впрочем, не совсем согласуется с идеологией наборов данных ADO.NET, согласно которой лучше заливать данные из таблиц источника данных как есть в отдельные таблицы набора данных и затем уже в приложении связывать данные при помощи отношений (объектов DataRelation). После выбора таблиц(ы) нажмем кнопку Close. В окне формирования запроса (рис. 5.2) отметим нужные столбцы и проверим на всякий случай текст запроса, автоматически сгенерированный Query Builder.

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 5.2

Когда текст нас не устраивает, нажмем кнопку OK. Сформированный запрос будет помещен в свойство CommandText команды данных.


⇐ Предыдущая страница| |Следующая страница ⇒