Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Вебмастеру -> Сеппа Д. -> "Microsoft ADO.NET" -> 115

Microsoft ADO.NET - Сеппа Д.

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 109 110 111 112 113 114 < 115 > 116 117 118 119 120 121 .. 260 >> Следующая

Подтверждает все сделанные после вызова метода
BeginEdit
GetCbUdRows Возвращает массив дочерних объектов DataRow текущего объекта
DataRow, основываясь на объекте DataRelation
Получает сведения об в конкретном поле
GetColumnsInError Возвращает для текущей записи массив объектов DataColumn. содержащих ошибки
GetParentRow * Возвращает родительский объект DataRow текущего объекта DataRow, основываясь на объекте DataRelation
GetParentRows Возвращает массив родительских объектов DataRow текущего объекта основываясьнаобъектеШЖШлШ?
ГЛАВА 6 Работа с объектами DataSet 245
Таблица 6-13. • (продолжение)
Метод Описание
HasVersion Возвращает логическое значение, указывающее, может ли объект
ОаШЯбш вернуть требуемую версию данных
IsNull Указывает, содержит ли определенное поле объекта ОШаКом> зна-
чение л'пН
RejectChanges Отменяет все отложенные изменения в объекте ТагаВо^
SetColumnEnor Задает сведения об ошибках в конкретном поле
SetParentRow Изменяет родительский объект №аЯоу) текущего объекта БШаКоу/,
основываясь на объекте ВашЯеШюп
Методы AcceptChanges и RejectChanges
Мсгоцы Аса-р!СЬа>ще> и RejectChanges позволяют подтверждать и отбрасывать все отложенные изменения в объекте DataRow.
По умолчанию, успешно передав отложенные изменения, хранящиеся в объекте DataRow, объект DataAdapter неявно вызывает метод DataRowAcceptChanges. При этом свойству RowState объекта DataRow задается значение Unmodified.
При вызове метода RejectChanges все отложенные изменения в объекте DataSet
отбрасываются; в этом случае свойству RowState объекта DataRow также задастся значение
Предположим, у вас есть запись с информацией о клиенте, содержащая отложенные изменения. Поле Coir.isariyNamc изначально содержало значение Initial CompanyName, а теперь содержит значение New CompanyName.
После вызова метода AcceptChanges объект DataRow перестанет хранить «старое» оригинальное значение !нШа, CompanyName. Если вы запросите текущее или оригинальное значение записи с помощью метода DataRow в лю-
бом случае вернет New CompanyName.
При вызове метода RejectChanges объект DataRow перестанет хранить новое
значение New CompanyName. Если запросить текущее или оригинальное значение записи с помощью метода DataRow в любом случае вернет Initial CompanyName.
Подробнее о том, как использует оригинальные значения DataRow
для передачи изменений в БД, — в главах 10 и 11.
Методы CancelEdit и EndEdit
Методы Begink'dil, CancelEdit и EndEdit позволяют сохранять и отменять группы изменений содержимого объекта DataRow. Так, можно позволить пользователям редактировать содержимое записи и запросить подтверждение на сохранение или отмену этих изменений посредством диалогового окна.
Методы CancelEdit и EndEdit функционируют несколько иначе, чем методы
AcceptChanges и RejectChanges. Проще всего объяснить разницу между этими методами на примере. Следующий фрагмент создает новый объект DataRow, изменяет его содержимое, вызывает метод BeginEdit, снова изменяет содержимое объекта DataRow и выводит различные версии содержимого записи.
246
Часть III Автономная работа с данными: объект DataSet модели ADO.NET
Visual Basic .NET
Dim As New Oata1able("Customers") tbl. Columns. Add("CustomerlD", GetType(String)) tbl.Columns.Add("CompanyName", GetType(String)) Dim As DataRow
Создаем новую . с помощью метода LoadQataRow row = tbl.ioadOataRow<New Object!) {"ABCDE", _
"Initial CompanyName-}, True)
' Изменяв» содержимое объекта DstaRow свойство 'ow.HowState вернет Modifier.! '"Оригинальное" значение поля - "Initial CompanyName11 row("CompanyName") = "New CompanyName"
•Вызывав BeginEnit и снова наменяем содержимое поля CompanyName row.8eginEdit()
row("CompanyName") = "Even Newer СошрапуЯвке*"
'Зызодии различные версии содержимого иол;1 Console.WriteLine("Proposed: " &
row("CompanyName", DataflowVersion.Proposed)) Console.WriteLineC'Current: " & _
rowC'CompanyName", DataRowVersion.Current)) Console.WriteLine("Original: " &
row("CompanyName", DataRowVersion.Original))
Visual C# .NET
DataTable tbl = new DataTable("Customers"); tbl.Columns.Add("CustomerlD", typeof(st ring)); tbl.Columns.Add("CompanyName", typeof(st ring));
DataRow row;
//Создав!- новую запись с помощью метода l.oadOataRow row = tbl.LoadDataRow<new object[] ("ABCDE",
¦"Initial CompanyName"), true);
содержимое объекта DataRow
//свойство row.RowState вернет Modified //"Оригинальное" значение поля - "Initial CompanyName" row["CompanyName"] = "New CompanyName":
BeginEnit и снова изменяем содержимое поля CompanyName
row.BeginEdit();
irow["CompanyName"] = "Even Newer CompanyName!";
//Выводи* различные версии содержимого поля Console.WriteLinef"Propossd: " +
row["CompanyName", DataRowVersion.Proposed]);
ГЛАВА 6 Работа с объектами DataSel
247
Console-WriteLins< "Cur-ant: " +
row["CompanyName", DataRowVersion.Cu rrent]); Console.WriteLine("Original: " +
rowfCompanyName ', DataRowVersion . Original ]);
Запустив код, вы увидите, что предполагаемое значение поля — Even Newer
Предыдущая << 1 .. 109 110 111 112 113 114 < 115 > 116 117 118 119 120 121 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100