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

 

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

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

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 136 137 138 139 140 141 < 142 > 143 144 145 146 147 148 .. 260 >> Следующая

Свойство Row
Функциональность объекта DataRowView немного уже функциональности объекта DataRow. Так, у DataRowView нет методов типа AcceptCbanges и GetCbanges. Если
вам необходимы возможности интерфейса DataRow, воспользуйтесь свойством Row
316
Часть Автономная работа с данными: объект DataSet модели ADO.NET
объекта OakiRowVieir Оно возвращает соответствующий объекту DataRowView объект DataRow.
Свойство RowVersion
Если вы работаете с записью данных при помощи интерфейса DataRowView и вам требуется определить, какая именно версия данных доступна через аюис: во Item, просмотрите значение свойства RowVersion объекта DataRowView.
Свойство RowVersion доступно только для чтения, но возвращает значение из перечисления
Методы объекта DataRowView
Методы объекта DataRoivView описаны в табл. 8-5. Таблица 8-5. Методы объекта DataRowView
Метод описание
!h-,'hl-,i). Начинает процесс редлктироешг.ш записи
'¦¦ше-, ¦!!¦.!/! Отменяет отложенные изменения записи
< :miie<ЗШ Ш Создает новый объект DataView, содержащий только дочерние записи текущей записи
s.h-k Помечает запись как удаленную
!¦!/,п:-:1а Сохраняет отложенные изменения записи
Методы CancelEdh и EndEdit
Методы BeginEdit, CancelEdiivi EndEdit объекта DataRowView работают аналогично соответствующим методам объекта DataRow. Если перед редактированием записи вы вызовете метод I'lcg/iil'd/i: сделанные изменения подтверждаются только после вызова метода EndEdit. Для их отмены воспользуйтесь методом CancelEdit.
Метод CreateChildView
Предположим, вам нужно создать объект DataView, отображающий только дочерние записи, связанные с конкретной записью. Для отношения «клиенты — заказы», о котором идет речь в этой книге, создать подобный объект DataView очень легко. Назначьте свойству Table объект DataTable, содержащий информацию о. заказах, а свойству RimE/liei — строку типа QistrmerlD = ALFKF.
Все выглядит весьма просто. А что, если придется проверить значение столбца (CustomerlD) на предмет симв< •.••юи-раздслн rc-леп? А если вы имеете дело с основанным на группе
Объект >leu предоставляет простое и изяшное решение этой проблемы — метод CreateChildView. Вам следует лишь вызвать его и указать имя отношении или объект DataRelation (также, как и при работе с методом GetCbildRows объекта DataRow). Метод CreateChildView вернет новый объект DataView, использующий данное отношение в качестве фильтра.
¦Следующий фрагмент кода демонстрирует, как работает метод CreateCbild\riew;
ГЛАВА 8 Сортировка, поиск, фильтрация
317
Visual Basic .NET
Dim ds As New DataSetl )
Dim tblCustomers, tblOrders As DataTable
tblCustomers = ds.Table3("Customers") tblOrders = ds.TablesC'Orders")
ds. Relations.Add("CustomersOrders", tblCustomers.Columns<"CustomerID"), tblOrders.Columns("CustomerID"))
Dim vueCustomers, vueOrders As DataVie* vueCustomers = New DataView(tolCustomers)
vueOrders = vueCustomers(0),CreateChildView("CustomersOrders")
Visual C# .NET
DataSet ds = new DataSetO; :DataTable tblCustomers, tblOrders;
tblCustomers = ds.Tables[ "Customers"]; tblOrders = ds,Tables["Orders"];
ds.Relations,AddC'CustomersOrders", tblCustomers.Columns["CustomerID"], tblOrders. Columns["CustomerID"]);
DataView vueCustomers, vueOrders;
vueCustoirers = new DataView(tblCustomers);
vueOrders = vueCustomers[0].CreateChildView("CustomersOrders");
Примечание При создании нового объекта DataView с помощью метода
i.U!rt\rh't< свойство k'1/iTiUt.'! возвращает пустую строку Тем не менее при этом доступны только нужные дочерние записи. Как это объяснить-Новый объект DataView использует функцию, которую технические спе- ' * предпочитают называть
I ¦
Метод Delete
Метод Delete объекта позволяет удалить запись. Мочит;- что запись
лишь помечается как удаленная, на самом деле она по-прежнему npncyrcvm'cr п объекте DataTable. Чтобы реально удалить запись из объекта DataTable, вызовите ж^р,Асаф1С.Ьапт\ или передайте ожидающие изменения в БД с помощью объекта
DataAdapter.
Вопросы, которые стоит задавать почаще
Вопрос. Как выбрать наиболее подходящий метод для поиска данных в объекте DataTable?
Ответ. Это ул\'л\:¦!¦¦!¦ от того, что вы хотите искать и что собираетесь делать с результатами поиска. Бот несколько рекомендаций:
318
Часть III Автономная работа с данными: объект DataSet модели ADO NET
• для поиска записи по значению первичного ключа используйте метод Data-TableJiowsfind;
• чтобы связать элементы управления с записями, удовлетворяющими критериям поиска, применяйте объект DataView,
• для многократного поиска посвистам, не являющимся ключевыми, используйте метод DataViewFind;
• во всех остальных случаях годится метод /dtlaiahlcSetcct.
Вопрос. Создать объект DataView в коде достаточно просто. А можно ли получить какие-нибудь преимущества, создавая этот объект средствами Visual Studio .NET в период разработки?
Ответ. Я рад слышать этот вопрос. Создавая объекты DataView с помощью Visual Studio вы получаете два главных преимущества. Во-первых, если объект
DataView будет использоваться связанными элементами управления, то созданные в период разработки элементы и объекты можно сразу же связать. Лично я предпочитаю задавать нужные свойства в период разработки, щелкая мышью, а не
Предыдущая << 1 .. 136 137 138 139 140 141 < 142 > 143 144 145 146 147 148 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100