Реклама:

Отдельно стоит сказать о параметрических запросах. Если при формировании запроса вы поместите в его текст параметры (используя синтаксис соответствующего провайдера), то все они автоматически будут добавлены в коллекцию Parameters этой команды данных. При этом каждому параметру будут автоматически поставлены в соответствие характеристики того столбца, на который параметр ссылается в запросе.

Например, если в окне формирования запроса (рис. 5.3) мы укажем параметрический запрос вида

SELECT KK, KP, FIO, Rank FROM Prep

WHERE (KK = @KK) and (KP = @KP)

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

рис. 5.3

то оба параметра автоматически добавятся в коллекцию параметров (рис. 5.4).

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

рис. 5.4

По умолчанию Query Builder формирует запрос на извлечение данных (SELECT), однако его можно вручную изменить и на любой другой, например

UPDATE Prep

SET KK = @KK, KP = @KP

WHERE (KK = @Original_KK) AND (KP = @Original_KP)

Выполнение параметрических запросов вообще и запросов изменения данных в ча-стностив рассматривается ниже (см. 5.1.5). Здесь же остается с удовлетворением констатировать, что Query Builder умеет распознавать введенные пользователем параметры и весьма благосклонно к ним относиться.

Когда команду данных планируется использовать для вызова хранимой процедуры SQL Server, необходимо:

• установить свойство CommandType команды данных в значение CommandType. StoredProcedure;

• указать имя хранимой процедуры (без значений параметров) в свойстве Command Text команды.

Параметры будут автоматически считаны из процедуры и добавлены в коллекцию Parameters объекта команды данных.

Если команда данных будет считывать данные не из таблицы, а из функции SQL Server, то в Query Builder следует выбрать закладку Functions, из списка - имя нужной функции и нажать кнопку Add (рис. 5.5).

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

рис. 5.5

В остальном все действия разработчика аналогичны описанным выше для случая чтения из таблицы. К сожалению, если у функции есть параметры, то автоматически в объект команды данных они не добавляются и это нужно делать вручную (см. 5.1.9) .

5.1.3.2. Программное создание объектов команд данных

Для программного создания объекта SqlCommand или OleDbCommand команды данных нужно воспользоваться его конструктором. Если используется конструктор без параметров, то затем следует программно установить значения свойств Connection (ссылка на соединение), CommandType (тип команды), Command

Text (текст запроса к источнику данных), Parameters (параметры - для параметрических запросов).

Ниже рассматриваются конструкторы для обоих объектов команд данных. Если какие-либо параметры конструктора не указаны, то при создании команды соответствующим ее свойствам назначаются следующие умолчательные значения:

Properties

Initial Value

 

CommandText

Пустая строка ("")

 

CommandTimeout

 

CommandType

Text

 

Connection

null

 

Для объекта SqlCommand доступны следующие варианты конструктора: public SqlCommand();

public SqlCommand( string CmdText );

public SqlCommand( string CmdText, SqlConnection connection ); public SqlCommand( string CmdText, SqlConnection connection, SqlTransaction transaction );


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