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

 

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

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

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 209 210 211 212 213 214 < 215 > 216 217 218 219 220 221 .. 260 >> Следующая

пока не реализуется переход к другой записи или пока не будет вызван метод Такое поведение в чем-то аналогично фун-
кционированию метода Duta/i' iwJhginlitiil. Изменения действительно записываются в объект лишь после вызова метода
Для передачи изменений стоит прямо перед вызовом метода добавить вызов метода Оатен>yM<niagerJ:ndCtirr<'><lHiiil Это вполне уместно в конкретной ситуации, Но я предпочитаю другой способ.
На этапе 7 создания приложения я добавил кнопки Edit, Cancei и Update. При запуске приложения все данные в элементах управления TextBox доступны только для чтения. Чтобы изменить содержимое следует щелкнуть кнопку Edit. Лишь после ною удастся редактировать содержимое элементов управления TextBox (кроме элемента, связанного со столбцом OrderlDi Кнопки перемещения,, а также кнопки Add, Edit, Delete и Submit Changes на период редактирования отключаются. Для продолжения работы следует щелкнуть кнопку Update или Cancel (рис. 13-5). При щелчке кнопки Update изменения текущего заказа оодт i'-rj «:ы-ются. а при щелчке кнопки Cancel — отменяются.
На добавление такой функциональности требуется лишь несколько минут, и они тратятся с умом. В результате работа приложения станет более интуитивно понятной. Исчезнут проблемы с передачей изменений, связанные с тем, что изменения не подтверждены. Кроме того, вам не придется напрягаться, чтобы по-как и когда объект CurrencyManager подтверждает изменения содержимого DataSet.
500 Часть IV Создание эффективных приложений с использованием ADO. NET
Dale. ,i .- ^.....¦.,.¦!,
Update ; Сіім.і |
mi;;.....• ¦ j [; f>».....J
Рис. 13-5. Принудительное подтверждение или отмена изменений в составе текущего заказа
Я добавил в код формы процедуру v >з >r(leisluiii.\hi<!< которая принимает логическое значение, указывающее, может ли пользователь редактировать текущий заказ. Процедура в соответствии с принятым значением задает значения Readonly элементов управления TextBox, а также значения свойств Hnahh-а кнопок. Процедура вызывается в событии Click кнопок Add. Edit, Update и Cancel.
Visual Basic .NET
Private Sub SetOrdersEditHode(ByVal blnEdit As Boolean) tXtCustOlterlO, ReadOnly = Not blnEdit txtEmployeelD. Readonly = Not blnEdit txtOrderDate.ReadOnly = Not blnEdit
btnOrdershfovePirst. Enabled = Not blnEdit btnOrdersKovePrevious. Enabled = Not blnEdit btnOrdersMoveNext. Enabled = Not blnEdit btnOrdersMoveLast. Enabled = Not blnEdit
= blnEdit
btnOrdersUpdate. Enabled = blnEdit btnOrdersEdit. Enabled = Not blnEdit btnOrdersAdd.Enabled = Not blnEdit btnOrdersDelete. Enabled = Not blnEdit btnSubmitChanges. Enabled = Not blnEdit End .Sub
Visual C# .NET
private void SetOrdersEditMode(bool blnEdit) {
txtCustonterlD, Readonly = ! blnEdit; txtEmployeelD. ReadOnly = I blnEdit;
=
btnOrdersMoveFirst.Enabled = !blnEdit;
ГЛАВА 13 Создание эффективных Windows-приложений
btnOrdersHovePreviDus, EnsMsci = ! blntoit; btnOrdersMoveNext,Enabled = IblnEdit; btnOrdersMoveLast.Enabled = IblnEdit;
btnOrdersCancel.Enabled = blnEdit; btnOrderstlpdate. Enabled = blnEdit; btnOrdersEdit.Enabled = IblnEdit; btnOrdersAdd.Enabled = IblnEdit; btnOrdersDelete.Enabled = [blnEdit: btnSubmitChaiigss. Enabled = IblnEdit;
I
Этап 8. Просмотр дочерних данных
Теперь наше приложение позволяет просматривать и изменять данные таблицы Orders. Тем не менее такая функциональность не очень-то полезна, если не предоставить возможность изменять состав
На рис. 13-6 показан пользовательский интерфейс следующей версии нашего цриложения. Как видно, я добавил сетку, отображающую данные из таблицы Order Details. Когда вы переходите от одного заказа к другому, в сетке отображаются только связанные с этим заказом записи.
[Ж t,H( Orders
CnferlD. Custanel ID: [ALFkT
E испуге ID: J 5.
см»* оыс js/xiwiMntiriAM
« I < [ OidwlolS > I » j
Ed* l_J^__J_^l!t!,B
1 ..! : V?
PindualD UnitPric* Quertiy Item Total
28: ^6 15 ем
39 IB 21 378
46 12 2
*
Submit Change
Рис, 13-6. Просмотр заказа и связанных с ним товаров
Чтобы добавить данную функциональность в приложение:
добавьте объект DataAaaptcr выбирающий все записи таблицы Order Dct.iiJs.
соответствующие заказам клиента;
2. воссоздайте объект DataSet со строгим контролем типов, чтобы в будущем добавить в него объект Ваш'!вbit с новыми данными, полученными на первом этапе. После этого добавьте в объект DataSet объект DataRelation, чтобы упростить поиск связанных с заказом товаров;
,3. добавьте на форму элемент управления DataGrid и свяжите с объектом DataSet
таким образом, чтобы в нем отображались лишь товары из состава текущего
заказа;
4. добавьте в процедуру, обрабатывающую событие Click кнопки Submit Changes, логику для передачи в БД изменений из обоих объектов DataTable.
502 Часть Создание эффективных приложений с использованием ADO.net
Получение только списка заказанных клиентом товаров
Создать объект DataAdapter, получающий только заказы конкретного клиента, весьма просто, поскольку в таблице Orders определен столбец CustomerlD. Б таблице Order Details такого столбца нет. Таким образом, запрос, получающий только список заказанных клиентом г<тарой, должен одновременно ссылаться на таблицы Order Details и Orders.
Предыдущая << 1 .. 209 210 211 212 213 214 < 215 > 216 217 218 219 220 221 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100