9. Расположите элементы управления так, как показано на рис. 7.2.
РИС. 7.2. Расположение элементов управления в верхней части формы frmDataViews
РИС. 7.З. Окончательный вид формы frmDataViews
10. Выберите все элементы управления и скопируйте их в нижнюю часть формы frmDataViews. Переименуйте все элементы управления (за исключением надписей) так, чтобы их имена заканчивались цифрой 2, а не 1 (например, btnApply2).
11. Укажите значение DataView2 для свойства CaptionText сетки DataGrid2.
Окончательный вид формы frmDataViews показан на рис. 7.3, а ее код представлен в листинге 7.6.
Imports System
Imports System.Data
Imports System.Data.SqlClient
Public Class frmDataViews
Inherits System.Windows.Forms.Form
"Windows Form Designer generated code"
Private dsCustomers As New DataSet()
Private dvView2 As DataView
Private Sub frmDataViewS_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim i As Integer
Dim col As DataColumn
' Инициализация объекта DataAdapter.
Dim daCustomers As SqlDataAdapter = New _
SqlDataAdapter("select * from tblCustomer", _
"server=localhost;uid=sa;database=novelty")
' Вставка данных только в ОДНУ таблицу.
daCustomers.Fill(dsCustomers, "Customers")
' Создание второго объекта DataView.
dvView2 = New DataView(dsCustomers.Tables("Customer"), _
"", "LastName", DataViewRowState.CurrentRows)
' Вставка списка из имен полей.
For Each col In dsCustomers.Tables("Customers.Columns")
cboSort1.Items.Add(col.ColumnName)
cboSort2.Items.Add(col.ColumnName)
Next
' Вставка объекта DataViewRowState.
Dim names As String()
names = DataViewRowState.None.GetNames(DataViewRowState.None.GetType)
For i = 0 To names.GetUpperBound(0)
cboRowState1.Items.Add(names(i))
cboRowState2.Items.Add(names(i))
Next
' Указание значений по умолчанию.
txtFilter1.Text = ""
txtFilter2.Text = ""
cboSort1.SelectedItem = "ID"
cboSort2.SelectedItem = "ID"
chkDesc1.Checked = False
chkDesc2.Checked = False
cboRowState1.SelectedItem = "CurrentRows"
cboRowState2.SelectedItem = "CurrentRows"
dsCustomers.Tables("Customers").DefaultView.Sort = "ID"
dvView2.Sort = "ID"
' Связывание сеток данных с таблицей.
DataGrid1.DataSource = dsCustomers.Tables("Customers").DefaultView
DataGrid2.DataSource = dvView2
End Sub
Private Sub btnApply1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnApply1.Click
Dim sort As String
Dim rowState As DataViewRowState
' Указание фильтра.
dsCustomers.Tables("Customers").DefaultView.RowFilter = _
txtFilter1.Text
' Указание сортировки.
sort = cboSort1.SelectedItem
If chkDesc1.Checked Then
sort = sort & " DESC"
End If
dsCustomers.Tables("Customers").DefaultView.Sort = sort
' Указание состояния записи.
dsCustomers.Tables("Customers").DefaultView.RowStateFilter = _