Реклама:

Для того чтобы обратиться к команде, сгенерированной для адаптера, нужно:

• выбрать адаптер в форме;

• перейти в окно свойств;

• отыскать там нужную команду и нажать мышью в квадратике, содержащем плюс;

• после этого раскроется список свойство команды.

2.2.12.1. Команда SelectCommand

Эта команда служит для выборки записей из источника данных и помещения их в таблицу набора данных.

Текст команды для адаптера OleDbDataAdapter:

SELECT KK, KP, FIO, Rank FROM Prep

Текст команды для адаптера SqlDataAdapter:

SELECT KK, KP, FIO, Rank FROM Prep

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

2.2.12.2. Команда InsertCommand

Пользователь может добавить в таблицу набора данных новые записи. Для занесения их в источник данных и служит команда InsertCommand. Текст команды для адаптера OleDbDataAdapter:

INSERT INTO Prep (FIO, KK, KP, Rank)

VALUES (?, ?, ?, ?)

Текст команды для адаптера SqlDataAdapter:

INSERT INTO Prep(KK, KP, FIO, Rank) VALUES (@KK, @KP, @FIO, @Rank); SELECT KK, KP, FIO, Rank FROM Prep

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

Как видим, у операторов есть различия.

Первое касается способа указания параметров. Для источников OLE DB параметры - позиционные (т. е. их порядок в тексте оператора SQL следования существен) и обозначаются символом знака вопроса ?. Для SQL Server параметры - именованные, их имя предваряется знаком @. Порядок следования параметров в тексте оператора SQL несуществен. Коллекция параметров в любом случае генерируется автоматически. В этом легко убедиться, заглянув к коллекцию Parameters команды.

Второе отличие состоит в том, что для SqlDataAdapter генерируется оператор SELECT, выполняющий повторное считывание данных, а для OleDbDataAdapter, контактирующего с базой Accès, в данном случае посредством провайдера Microsoft.Jet.OLEDB.4.0 - не генерируется.

2.2.12.3. Команда UpdateCommand

Пользователь может изменить в таблице набора данных значения столбцов некоторых записей. Для занесения этих изменений в источник данных и служит команда

UpdateCommand.

Текст команды для адаптера OleDbDataAdapter: UPDATE Prep

SET KK = ?, KP = ?, FIO = ?, Rank = ?

WHERE (KP = ?) AND

(FIO = ? OR ? IS NULL AND FIO IS NULL) AND

(KK = ? OR ? IS NULL AND KK IS NULL) AND (Rank = ? OR ? IS NULL AND Rank IS NULL)

Разберемся поподробнее. Для этого кратко рассмотрим, как происходит занесение измененной записи в таблицу источника данных вместо старой версии этой записи.

Каждый столбец записи таблицы набора данных имеет минимум две версии 1 значения. Первая версия - исходная (Original), она автоматически заполняется при заливке в таблицу методом Fill адаптера. Вторая версия - текущая (Current). Если пользователь изменил значение столбца, то эта версия содержит именно новое значение столбца. Если пользователь значения столбца не изменял, значения обеих версий, Original и Current, одинаково.


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