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

 

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

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

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

ГЛАВА Создание эффективных Windows-приложений 497
Запустите форму и измените значение поля Г'шрЬлссП'> в первом заказе. Вы помните оригинальное и новое значение данного поля? Отрсд;г".фоваз значение поля EmployeelD в первом перейдите к следующему и затем снова верни-
тесь к первому заказу. Вы увидите, что новое значение поля EmployeelD по-прежнему на месте. Я изо всех борюсь с желанием чудесным водевильным голосом спросить: «Это введенное вами значение поля EmployeelD?»
И хотя форма позволяет редактировать содержимое заказа, добавлять и удалять заказы нельзя... пока нельзя. Объект iлшчпо Man age предоставляет методы, позволяющие добавлять и элементы из структуры данных, с которой свя-
заны элементы управления. Метод /Л1йг'е;л добавляет новый элемент, а метод RaiiorcA! — удаляет существующий элемент. Элементы управления, связанные с объектом соответствующим образом реагируют на вызов любого
из этих методов. Если вы добавили элемент с помощью метода i.. элементы управления отобразят содержимое новой записи. При вызове метода f^tzoi-vi?
элементы управления отобразят содержимое следующей доступной записи.
Visual Basic NET
Private Sub BtnQrdersAdd.CHck. . cmOrders.AddNew()
End Sub
Private Sub
If cmOrders.Count > 0 Then
cmOrders.RemoveAt(cmOrders.Position)
Else
HessageBox. Stiow("No Order to Delete! ", "Delete Order",
MessageBoxButtons.OK, HessageBoxIcon. Error)
End If End Sub
Visual C# NET
private void btnOrdersAdd_Click(object sender, System, EventArgs e)
<
cmOrders.AddNew(); SetOrdersEditHode(true);
}
private void btnOrdersDelete_Ci:ok(object sender, System, EvantArgs e)
if (cmOrders. Count > 0)
cmOrders.RemovaAtCcmOrders.Position);
else
HessageBox.Stiow("No Order to Deletel", "Delete Order",
MessageBoxButtons.OK, MessageBoxIcon. Error);
)
498
Часть IV Создание эффективных приложений с использованием adotjeT
Этап 6. Передача изменений в БД
Теперь наше приложение позволяет редактировать, добавлять и удалять заказы. Но как вы, возможно, заметили, приложение не передает эти изменения в БД. Надеюсь, вы достаточно хорошо помните материал глав 5 и 10, чтобы понимать, почему это так. Связанные элементы управления изменяют содержимое !;а.>.-;м;\ однако у нас нет кода, вызывающего метод Da taAdapie Update.
Мы создали объект DataAdapter с помощью мастера Data Adapter Configuration Wizard, и поэтому определять логику обновления не требуется. За нас ее создал мастер. Все, что надо сделать нам. — добавить на форму кнопку Submit Changes и вызвать в процедуре обработки события Click этой кнопки метод DataAdapter Update, чтобы передать изменения в БД. Код перехватывает возвращаемое значение метода Update объекта DataAdapter, указывающее число переданных в БД изменений.
Я добавил пару строк кода, которые выводят число измененных записей о заказах, при ошибке обновления перехватывают генерируемое исключение и выводят диалоговое окно, если объект не содержит отложенных изменений, Суть этого кода — все тот же ыа:я ь метода D«la-\dtifjierJ'.pdate:
Visual Basic .NET
If risChapter13.hasCrmnges Then Try
Dim intOrdersModified As Integer
intOrdersModified = daOrders.Update(dsChapter13.Orders)
Dim strOutput As String
strOutput = "Modified " & intOrdersModified S " order(s)" MessageBox.Shovi( strOutput, "Update succeeded!",
MessageBoxButtons.OK, MessageBoxlcon.Information) Catch ex As Exception
MessageBox.Show(ex.Message, "Update failed!",
MessageBoxButtons.OK, MessageBoxlcon.Error)
End Try
Else
MessageBox.ShowC'No changes to submit!", "SubmitChanges", _
MessageBoxButtons.OK, MessageBoxlcon.Information)
If
Visual C# .NET
if i
try
{
int intOrdersModified;
intOrdersModified = daOrders.Update(dsChapter13. Orders) ; string strOutput;
strOutput = "Modified " + intOrdersModified + " order(s)"; MessageBox.Show(strOutput. "Update succeededl",
MessageBoxButtons.OK, MessageBoxlcon.Information);
I
ГЛАВА 13 Создание эффективных Windows-приложений
499
catch (Exception ex)
{
Hessage?ox.Show(ex.Messaqe. "Update faiieo!'.
MessageBoxButtons.OK, MessageBoxIcon.Error);
I
}
eise
MessageBox.Show("No changes to submit!", "SubmitChanges",
MessageBoxButtons.OK, MessageBoxIcon.Information);
Этап 7. Добавление кнопок Edit, Update и Cancel
Созданное нами приложение — довольно простое: на форме лишь несколько элементов управления. Тем не менее работа с приложением не настолько интуитивно понятна, как может показаться.
Запустите приложение и измените значение поля !-.mpii>4 ¦¦¦ И '¦ первого заказа. Щелкните кнопку Submit Changes. Откроется диалоговое окно с сообщением об отсутствии изменений для передачи в БД. Что же произошло?
Согласно нашему коду, объект DataSet не содержит каких-либо изменений. Так что же случилось с только что внесенными вами изменением? Объект <Е.чт Ч1.У-Manager по-прежнему хранит его и пока не записал в объект DataSiЕсли перейти к следующему заказу и щелкнуть кнопку Submit Changes, изменение будет успешно передано в БД.
Объект не подтверждает отложенные изменения объекта
Предыдущая << 1 .. 208 209 210 211 212 213 < 214 > 215 216 217 218 219 220 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100