Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая.doc
Скачиваний:
6
Добавлен:
08.11.2018
Размер:
470.53 Кб
Скачать
  1. Класс DataView

    1. Базовая информация

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

DataView нельзя рассматривать как таблицу. DataView не может обеспечить представление таблиц. Также DataView не может обеспечить исключения и добавления столбцов. Таким образом, DataView не является средством преобразования исходной информации, зафиксированной в таблице.

После создания объекта DataView и его настройки на конкретную таблицу появляется возможность перебора записей, их фильтрации, поиска и сортировки.

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

DataView предоставляет динамический взгляд на содержимое таблицы в зависимости от установленного в таблице порядка представления и вносимых в таблицы изменений. Используя этот объект, можно представлять содержащиеся в таблице данные в соответствии с тем или иным порядком сортировки, а также организовать различные варианты фильтрации данных.

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

Для создания представления данных с установленным фильтром и сортировкой задайте свойства RowFilter и Sort. Затем воспользуйтесь свойством Item, чтобы возвратить объект DataRowView.

Кроме того, с помощью методов AddNew и Delete можно также добавить или удалить набор строк. При этом с помощью свойства RowStateFilter объекту DataView можно задать отображение только удаленных или новых строк.

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

    1. Конструкторы класса DataView

Для создания объекта класса DataView возможно использование одного из трех конструкторов.

1 . Инициализирует новый экземпляр класса DataView.

Синтаксис:

DataView()

В следующем примере показано создание нового объекта DataView.

private void MakeDataView()

{

DataView view = new DataView();

view.Table = DataSet1.Tables["Suppliers"];

view.AllowDelete = true;

view.AllowEdit = true;

view.AllowNew = true;

view.RowFilter = "City = "Moskow";

view.RowStateFilter = DataViewRowState.ModifiedCurrent;

view.Sort = "CompanyName DESC";

// жесткая привязка к TextBox

Text1.DataBindings.Add("Text", view, "CompanyName");

}

2 . Инициализирует новый экземпляр класса DataView с указанным объектом DataTable (класс DataTable представляет собой одну таблицу с данными, хранящуюся в памяти).

Синтаксис:

public DataView(DataTable table);

Параметр:

table (System.Data.DataTable) –объект DataTable.

В следующем примере показано создание нового объекта DataView с указанным объектом DataTable.

private void MakeDataView()

{

DataView view = new DataView(DataSet1.Tables["Suppliers"]);

// жесткая привязка к ComboBox

Combo1.DataSource = view;

Combo1.DisplayMember = "Suppliers.CompanyName";

}

3 . Инициализирует указанный экземпляр класса DataView с указанным объектом DataTable, свойствами RowFilter, Sort и объектом DataViewRowState.

Синтаксис:

public DataView(

DataTable table,

string RowFilter,

string Sort,

DataViewRowState RowState

)

Список параметров:

table (System.Data.DataTable) - объект DataTable.

RowFilter (System.String) - выражение, используемое для выбора строк, просматриваемых в объекте DataView.

Sort (System.String) - Возвращает или задает столбец или столбцы для сортировки, а затем — порядок сортировки для DataView.

RowState (System.Data.DataViewRowState) - Описывает версию данных в объекте DataRow. Это перечисление имеет атрибут FlagsAttribute, поддерживающий побитовое соединение составляющих его значений.

Возможные значения:

None – Отсутствует.

Unchanged - Неизмененная строка.

Added - Новая строка.

Deleted - Удаленная строка.

ModifiedCurrent - Текущая версия исходных данных, которые были изменены (см. ModifiedOriginal).

ModifiedOriginal - Версия исходной строки измененных данных. (Хотя данные были изменены, они доступны как ModifiedCurrent).

OriginalRows - Исходные строки, включая неизмененные и удаленные. CurrentRows Текущие строки, включая неизмененные, новые и измененные строки. Имя приложения может быть 128 символов или меньше.DataViewRowState.

В следующем примере показано создание нового объекта DataView с описанным конструктором.

private void MakeDataView(DataSet dataSet)

{

DataView view = new DataView(dataSet.Tables["Suppliers"],

"Country = 'UK'", "CompanyName",

DataViewRowState.CurrentRows);

view.AllowEdit = true;

view.AllowNew = true;

view.AllowDelete = true;

}