dsCustomers.Tables("Customers").DefaultView.RowFilter = " "

dsCustomers.Tables("Customers").DefaultView.RowStateFilter = _

 DefaultView.RowState.ModifiedCurrent

НА ЗАМЕТКУ

Объект DataView также имеет метод Find для поиска одной записи и метод FindRows для поиска и возвращения нескольких записей. Если нужно извлечь или набор записей, которые соответствуют заданному критерию, вместо динамического представления данных, то с помощью методов Find и FindRows (вместо указания свойства RowFilter) будут возвращены только интересующие нас записи. Этот метод обладает более высокой производительностью, чем метод на основе установки значения свойства RowFilter. Дело в том, что указание значения свойства RowFilter вызывает перестройку индекса представления, а методы Find и FindRows используют уже существующие индексы.

Для таблицы могут быть созданы также дополнительные объекты – представления данных. Для определения еще одного представления таблицы Customers нужно создать еще один объект dvView2 и указать его свойства так, как показано ниже.

dvView2 = New DataView(dsCustomers.Tables("Customers"), _

 "", "LastName", DataViewRowState.CurrentRows)

Теперь, после определения объекта DataView, можно изменить его свойства.

dvView2.RowFilter = "LastName > 'F'"

dvView2.Sort = "LastName DESC"

dvView2.RowStateFilter = DataViewRowState.Current 

НА ЗАМЕТКУ

Объект DataViewManager предлагает удобный централизованный способ управления параметрами представлений для всех таблиц набора данных DataSet.

В большинстве других случаев объект DataView аналогичен объекту DataTable. Доступ к отдельным записям и полям представления осуществляется с помощью объекта DataRowView. Этот объект также поддерживает отношения между таблицами объекта DataSet.

Объект DataView имеет модель редактирования, аналогичную модели редактирования объекта DataTable. Указание значения True для свойств AllowNew, AllowEdit и  AllowDelete означает разрешение на выполнение соответствующих операций редактирования (вставки, изменения и удаления). Методы BeginEdit и EndEdit и CancelEdit объекта DataRowView управляют внесением изменений в объект DataTable. Метод EndEdit вносит изменения в объект DataRow с версией Current. Эти изменения затем принимаются (или отвергаются) базовым объектом DataTable с помощью метода AcceptChanges (или RejectChanges).

Рассмотрим теперь, как описанные выше идеи применяются на практике. Создайте новую форму frmDataViews в проекте DataSetCode (готовая версия этой формы находится в каталоге с примерами главы 5, "ADO.NET: объект DataSet") для создания двух разных представлений одной таблицы Customers. Каждый объект DataGrid отображает данные представления и содержит кнопки управления сортировкой и фильтрацией. Для этого выполните перечисленные ниже действия.

1. В форме frmDataSets проекта DataSetCode создайте новую кнопку под кнопкой Data Adapter Updates.

2. В окне Properties укажите значение btnDataViews для свойства (Name) и значение Data Views для свойства Text этой кнопки.

3. Создайте новую форму.

4. В окне Properties укажите значение frmDataViews для свойства (Name) и значение Dueling Data Views для свойства Text новой формы Form1.

5. Увеличьте размер формы frmDataViews.

6. Создайте в правой части формы сетку данных DataGrid1, текстовое поле txtFilter1 с надписью, поле со списком cboSort1 и надписью, флажок chkDesc1 с надписью, поле со списком cboRowState1 и надписью, кнопку btnApply1, перетаскивая их из панели элементов управления.

7. В окне Properties укажите значение Descending для свойства Text флажка chkDesc1 и значение Apply для свойства Text кнопки btnApply1. Укажите значение DropDownList для свойства DropDownStyle полей со списком cboSort1 и cboRowState1. Укажите для свойства Text надписей значения by Column: и Row State.

8. Укажите значение Default Data View для свойства CaptionText сетки DataGrid1.

Перейти на страницу:

Похожие книги