Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Свойство RowVersion




 

Свойство RowVersion предназначено для извлечения значения записи (объекта DataRow), зависящего от совершенных изменений. Возможны следующие версии записи:

- Current - текущее значение

- Default - значение по умолчанию

- Original - первоначальное значение

- Proposed - предполагаемое значение

Создадим новое приложение. В классе формы объявим объекты DataRow и DataTable: DataRow myRow; DataTable dtTours;

В конструкторе формы создаем запись, определяем источник данных для элемента DataGridView, а также отключаем его доступность:

public Form1() {
InitializeComponent();
dtTours = new DataTable("Туры");
DataColumn IDtour = new DataColumn("Название", typeof(string));
dtTours.Columns.Add(IDtour);
myRow = dtTours.NewRow();
dtTours.Rows.Add(myRow);
myRow["Название"] = "Таиланд";
dataGrid1.DataSource = dtTours;
dataGrid1.Enabled = false;
}

Создадим метод TestRowVersion, в котором будет проверяться свойство RowVersion записи:

private void TestRowVersion() {
if(myRow.HasVersion(DataRowVersion.Original))
rtbReport.Text += String.Format("Значение original: {0}\n",
myRow[" Название", DataRowVersion.Original]);
if(myRow.HasVersion(DataRowVersion.Current))
rtbReport.Text += String.Format("Значение current: {0}\n",
myRow[" Название", DataRowVersion.Current]);
if(myRow.HasVersion(DataRowVersion.Default))
rtbReport.Text += String.Format("Значение default: {0}\n",
myRow[" Название", DataRowVersion.Default]);
if(myRow.HasVersion(DataRowVersion.Proposed))
rtbReport.Text += String.Format("Значение proposed: {0}\n",
myRow["Название", DataRowVersion.Proposed]);
}

Метод HasVersion позволяет определить, поддерживает ли объект myRow версию данных, указываемую в скобках. В случае подтверждения будет выполняться код оператора - выводится в элемент rtbReport соответствующее сообщение.

В обработчике кнопки btnBeginEdit (Редактировать) вызываем метод BeginEdit, устанавливаем новое значение записи:

private void btnBeginEdit_Click(object sender, System.EventArgs e) {
myRow.BeginEdit();
myRow["Название"] = "Франция";
rtbReport.Text += "BeginEdit\n";
TestRowVersion();
}

В обработчике кнопки btnEndEdit завершаем редактирование записи:

private void btnEndEdit_Click(object sender, System.EventArgs e) {
myRow.EndEdit();
rtbReport.Text += "EndEdit\n";
TestRowVersion();
}

В обработчике кнопки btnCancelEdit отказываемся от внесенных изменений:

private void btnCancelEdit_Click(object sender, System.EventArgs e) {
myRow.CancelEdit();
rtbReport.Text += "CancelEdit\n";
TestRowVersion();
}

В обработчике кнопки btnDelete удаляем объект myRow:

private void btnDelete_Click(object sender, System.EventArgs e) {
myRow. Delete();
rtbReport.Text += "Запись удалена\n";
TestRowVersion();
}

В обработчике кнопки «Очистить отчет» просто удаляем содержимое текстового поля:

private void btnClear_Click(object sender, EventArgs e) {
this.rtbReport.Text = "";
}

Запускаем приложение.

После нажатия кнопки «Begin Edit» мы начинаем редактирование записи, вводится новое значение - «Франция». Оно становится значением по умолчанию (Default) и предполагаемым Proposed, значение «Таиланд» является текущим (Current) (рис. 116).

Рис. 116. Демонстрация работы. Шаг 1 - Редактирование

Отменяем редактирование, нажимая кнопку «Cancel Edit». При этом значение «Таиланд» становится текущим (Current) и по умолчанию (Default) (рис. 117).

Рис. 117. Демонстрация работы. Шаг 2 - Отмена редактирования

Снова начинаем редактирование - картина повторяется (рис. 118).

Рис. 118. Демонстрация работы. Шаг 3 - Повторное редактирование

На этот раз завершаем редактирование, нажимая кнопку «End Edit» - новое значение «Франция» становится текущим (Current) и по умолчанию (Default) (рис. 119).

Рис. 119. Демонстрация работы. Шаг 4 - Завершение редактирования

Теперь нажимаем кнопку «Удалить» - при этом удаляется сам объект myRow и дальнейшее изменение его значений оказывается невозможным (рис. 120).

Рис. 120. Демонстрация работы. Шаг 5 - Удаление




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 430; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.