Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Свойство RowState




 

При работе с данными приходится постоянно вносить изменения в записи - добавлять, редактировать или удалять. Объект DataRow обладает свойством RowState, позволяющим отслеживать текущий статус строки.

Создадим новое приложение. В конструкторе формы мы создадим всего одно поле, затем одну запись, статус которой будем отслеживать:

public Form1() {
InitializeComponent();
DataTable dtTours = new DataTable("Туры");
DataColumn IDtour = new DataColumn("Код тура", typeof(Int32));
dtTours.Columns.Add(IDtour);
dataGrid1.DataSource = dtTours;
DataRow myRow;
// Создаем новую, отсоединенную запись
myRow = dtTours.NewRow();
richTextBox1.Text += Convert.ToString("Новая запись: " + myRow.RowState);
//Добавляем запись в объект
DataTable dtTours.Rows.Add(myRow);
richTextBox1.Text += Convert.ToString("\nДобавление записи: " + myRow.RowState);
//Принимаем все изменения в объекте
DataTable dtTours.AcceptChanges();
richTextBox1.Text += Convert.ToString("\nМетод AcceptChanges: " + myRow.RowState);
//Редактируем запись
myRow["Код тура"] = 1;
richTextBox1.Text += Convert.ToString("\n Редактирование строки: " + myRow.RowState);
//Удаляем строку
myRow.Delete();
richTextBox1.Text += Convert.ToString("\nУдаление: " + myRow.RowState);
//Отменяем все изменения в объекте
DataTable dtTours.RejectChanges();
richTextBox1.Text += Convert.ToString("\n Метод RejectChanges: " + myRow.RowState);
}

Запускаем приложение. В текстовое поле выводится статус записи myRow (рис. 115).

Значение Detached означает, что запись не относится к объекту DataTable. После добавления ее статус изменяется на Added - теперь она существует в объекте DataTable, но ее нет в базе данных. Конечно, здесь не рассматривается взаимодействие с источником записей, но это же значение будет у записей, добавляемых в DataGrid после вывода данных из базы при наличии подключения. Вызывая метод AcceptChanges объекта DataTable, выполняется прием всех изменений, поэтому статус DataRow изменяется на Unchanged - теперь запись считается «своей», она не была изменена после вызова метода. После вызова метода Delete запись помечается удаленной - она еще не полностью удалена, в случае отмены изменений статус будет восстановлен. Действительно, вызов метода RejectChanges объекта DataTable восстанавливает запись до состояния Unchanged.

Рис. 115. Приложение RowState

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




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


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


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



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




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