Private Sub ReadDataMapped()

 Dim daEmployees As SqlDataAdapter = New _

  SqlDataAdapter("select * from tblEmployee", _

  "server=localhost;uid=sa;database=novelty")

 dsEmployeeInfo = New DataSet()

 ' Конфигурация отображений таблицы и полей.

 daEmployees.TableMappings.Add("MappingName", "empDataSetTable")

 With daEmployees.TableMappings("MappingName").ColumnMappings

  .Add("ID", "empEmployeeID")

  .Add("FirstName", "empFirstName")

  .Add("LastName", "empLastName")

  .Add("DepartmentID", "empDepartmentID")

  .Add("Salary", "empSalary")

 End With

 daEmployees.Fill(dsEmployeeInfo, "MappingName")

 DisplayDataSet(dsEmployeeInfo)

End Sub

НА ЗАМЕТКУ

По умолчанию отображение таблицы называется Table. Оно применяется в том случае, если в методе Fill (или методе Update) используется только имя объекта DataSet. Однако его можно указать явно вместе с нужным именем таблицы с помощью приведенного ниже кода.

daEmployees.TableMappings.Add("Table", "MyTableName")

daEmployees.Fill(dsEmployeeInfo)

Это приведет к созданию таблицы MyTableName и вставке данных в нее.

<p>Объект DataView</p>

Объект DataView позволяет одновременно создавать разные представления данных из объекта DataTable и обладает перечисленными ниже свойствами, которые позволяют настраивать способ отображения данных.

Порядок сортировки (нисходящий или восходящий) по одному или нескольким полям.

Выражение для фильтрации записей, которое указывает критерии отображения записей на основе значений полей.

Фильтр состояния записи, который указывает критерии отображения записей на основе состояния записи (см. перечисление DataViewRowState, показанное в табл. 5.3).

Хотя этот способ может показаться аналогичным способу на основе использования метода Select объекта DataTable, они существенно отличаются. С одной стороны, объект DataView – это полностью динамичное представление данных. Помимо изменений значений полей, вставки и удаления записей в таблице-источнике немедленно отражаются в объекте DataView. С другой стороны, метод Select возвращает массив фиксированный длины со ссылками на записи, которые отражают изменения значений полей в таблице-источнике, но не отражают вставку и удаление записей или их упорядочение. Этот динамический аспект объекта DataView особенно эффективно применяется для создания кода, связанного с данными. 

НА ЗАМЕТКУ

Хотя объект DataView аналогичен классическому представлению базы данных, он все же отличается от него следующим:

• не может использоваться как таблица;

• не может быть объединением нескольких таблиц;

• не может исключать поля, которые присутствуют в таблице-источнике;

• не может включать дополнительные поля (например, вычисленные поля), которых нет в таблице-источнике.

Объекты DataView используются с помощью свойства DefaultView объекта DataTable. Предположим, нужно создать представление для таблицы Customers, причем клиенты в нем должны быть упорядочены по почтовым индексам и иметь фамилии, начинающиеся с символа С. Для этого нужно использовать указанные ниже значения двух соответствующих свойств.

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

 "LastName = 'Like C* ' "

dsCustomers.Tables("Customers").DefaultView.Sort = "Zip"

Если необходимо отобразить в представлении текущие значения только из тех записей, которые были изменены (но еще не сохранены), то нужно указать новое значение для свойства RowFilter и значение свойства RowState.

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

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