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

Disposed -Добавляет обработчик событий, чтобы прослушивать событие Disposed для компонента. (Унаследовано от MarshalByValueComponent.)

Initialized -Происходит при завершении инициализации DataView.

ListChanged -Происходит при изменении списка, управляемого объектом DataView.

  1. Пример использования DataView

    1. Первый пример

Полный программный код данного примера находиться в Приложении 1.

Для первого знакомство с классом DataView рассмотрим пример размещенный на msdn.microsoft.com.

Данный пример довольно прост и состоит из трех функций.

1. Функция вывода на консоль содержимого DataTable.

private void PrintTableOrView(DataTable table, string label)

{

// This function prints values in the table or DataView.

Console.WriteLine("\n" + label);

for(int i = 0; i<table.Rows.Count;i++)

{

Console.WriteLine("\table" + table.Rows[i]["item"]);

}

Console.WriteLine();

}

2. Функция вывода на консоль содержимого DataView

private void PrintTableOrView(DataView view, string label)

{

// This overload prints values in the table or DataView.

Console.WriteLine("\n" + label);

for(int i = 0; i<view.Count;i++)

{

Console.WriteLine("\table" + view[i]["item"]);

}

Console.WriteLine();

}

3. Функция DemonstrateDataView(), в которой содержится создание и заполнение DataTable начальными данными, создание объектов DataView, добавление данных через DataView. Рассмотрим данную функцию более подробно.

Создадим таблицу «table» состоящую из одного столбца типа String.

DataTable table = new DataTable("table");

DataColumn colItem = new DataColumn("item",

Type.GetType("System.String"));

table.Columns.Add(colItem);

Заполним ее 5 записями.

for (int i = 0; i < 5; i++)

{

NewRow = table.NewRow();

NewRow["item"] = "Item " + i;

table.Rows.Add(NewRow);

}

Изменим 2 произвольные записи, и подтвердим изменения.

table.Rows[0]["item"] = "cat";

table.Rows[1]["item"] = "dog";

table.AcceptChanges();

Создадим 2 объекта DataView для таблицы table.

DataView firstView = new DataView(table);

DataView secondView = new DataView(table);

Установим firstView для отображения предыдущих значений измененных записей, а secondView для отображения новых записей и значений редактированных записей.

firstView.RowStateFilter = DataViewRowState.ModifiedOriginal;

secondView.RowStateFilter = DataViewRowState.ModifiedCurrent

| DataViewRowState.Added;

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

PrintTableOrView(table, "Current Values in Table");

firstView.RowStateFilter = DataViewRowState.ModifiedOriginal;

table.Rows[2]["item"] = "hourse";

PrintTableOrView(firstView, "First DataView: ModifiedOriginal");

DataRow rowAdd;

rowAdd = table.NewRow();

rowAdd["item"] = "fish";

table.Rows.Add(rowAdd);

secondView.RowStateFilter = DataViewRowState.ModifiedCurrent

| DataViewRowState.Added;

PrintTableOrView(secondView,

"Second DataView: ModifiedCurrent | Added");

Запустим пример, и посмотрим что будет выведено на экран.

Рис. 1. Скриншот работы примера №1

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