9. Расположите элементы управления так, как показано на рис. 7.2. 

РИС. 7.2. Расположение элементов управления в верхней части формы frmDataViews

РИС. 7.З. Окончательный вид формы frmDataViews

10. Выберите все элементы управления и скопируйте их в нижнюю часть формы frmDataViews. Переименуйте все элементы управления (за исключением надписей) так, чтобы их имена заканчивались цифрой 2, а не 1 (например, btnApply2).

11. Укажите значение DataView2 для свойства CaptionText сетки DataGrid2.

Окончательный вид формы frmDataViews показан на рис. 7.3, а ее код представлен в листинге 7.6.

Листинг 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 = _

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

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