Реклама:

aCCCataGriC.CaptionText += "Добавлено записей :" +

aCCT.Rows.Count.ToString(); upCCataGriC.DataSource = upCT;

upCCataGriC.CaptionText += "Изменено записей :" + upCT.Rows.Count.ToString();

Результат показан на рис. 3.104.

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 3.104

Как видно из рис. 3.104, таблица delT содержит две удаленные из Kaf записи, однако их визуализация невозможна; однако о наличии удаленных записей можно судить по отличному от нуля счетчику коллекции Rows таблицы delT.

_I

3.4.22. Версии значений в столбцах записи

Каждая запись содержит столько значений, сколько столбцов задано в таблице, по одному значению на каждый столбец. Каждое такое значение имеет несколько версий, а именно версию значения по умолчанию (Default), версию исходного значение (Original) и версию текущего значения (Current).

Если при обращении к значению столбца записи не указывается значение версии, всегда возвращается текущая (Current) версия значения. В силу этого оба приведенных ниже обращения к значению столбца трактуются одинаково:

string sCurr = dsVUZ1.Kaf[1]["Nazv"].ToString(); string sCurr = dsVUZ1.Kaf[1]["Nazv",

DataRowVersion.Current].ToString();

Непосредственно после того, как метод Fill адаптера данных зальет данные в записи таблицы, каждая столбец каждой записи этой таблицы получает две версии значения - исходную (Original) и текущую (Current). В описываемый момент обе версии идентичны, Current = Original.

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

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

После того как изменения, внесенные в значения столбцов записей в приложении, будут перенесены в источник данных методом Update адаптера, текущие версии значений столбцов записей будут скопированы в их исходные версии: Original = Current. То же самое произойдет после подтверждения изменений методом

AcceptChanges.

Однако если произойдет откат изменений методом RejectChanges, то исходные версии столбцов записи будут скопированы в текущие версии: Current = Original. При этом не важно, что текущая версия могла измениться 150 раз: при откате изменений всегда восстанавливается значение исходной версии столбца записи.

Обратиться к той или иной версии значения можно, указав в одном из перечисленных ниже индексаторов объекта DataRow название версии столбца из перечисления System.Data.DataRowVersion.

Индексатор 1. В качестве индекса используется строковое имя столбца:

public object this[string, DataRowVersion] {get;}

Индексатор 2. В качестве индекса используется объект столбца:

public object this[DataColumn, DataRowVersion] {get;}

Индексатор 3. В качестве индекса целочисленный номер - индекс столбца в коллекции DataColumnCollection:

public object this[int, DataRowVersion] {get;}

Перечисление System.Data.DataRowVersion задает следующие значения:


⇐ Предыдущая страница| |Следующая страница ⇒