×
Traktatov.net » Обработка баз данных на Visual Basic.NET » Читать онлайн
Страница 31 из 229 Настройки

Для создания новых записей в связанном с данными приложении выполните перечисленные ниже действия.

1. Создайте в форме новую кнопку с именем btnNew и укажите значение New (Ввести новые данные) для ее свойства Text.

2. Щелкните дважды на кнопке и введите приведенный ниже код обработки события щелчка на этой кнопке.

>Private Sub btnNew_Click(ByVal sender As System.Object, _

> ByVal e As System.EventArgs) Handles btnNew.Click

> Me.BindingContext(DsCustomer1, "tblCustomer").AddNew()

> txtFirstName.Focus()

> ShowDataStatus()

>End Sub

3. Запустите приложение и щелкните на кнопке New. После очистки текстового поля пользователь сможет ввести в форме новую запись. Для сохранения новой записи нужно перейти к другой записи с помощью кнопок Next или Previous.

Учтите, что кнопки Next или Previous фиксируют обновления объекта DataSet, поэтому в данном примере не нужно использовать явные инструкции обновления объекта DataSet после создания новой записи. В данном случае достаточно просто перейти к другой записи. Но если пользователь закроет приложение до фиксации новых данных в базе данных (либо неявно с помощью перехода к другой записи, либо явно с помощью метода Update объекта DataAdapter), то новые данные будут утрачены.

Кроме того, пользователю обычно предоставляют возможность отмены внесенных изменений с помощью метода CancelCurrentEdit объекта BindingContext.

Удаление записей из связанной с данными формы

Для удаления записей из связанной с данными формы на основе Windows Forms нужно использовать метод RemoveAt объекта BindingContext. Этот метод принимает один параметр – индекс удаляемой записи. Для организации удаления текущей записи нужно использовать свойство Position в качестве параметра метода RemoveAt объекта BindingContext, как показано в листинге 1.3.

Листинг 1.3. Удаление данных в приложении для работы с данными с помощью метода RemoveAt объекта BindingContext

>Private Sub btnDelete_Click(ByVal sender As System.Object, _

> ByVal e As System.EventArgs) Handles btnDelete.Click

> If MsgBox("Whoa bubba, you sure?", MsgBoxStyle.YesNo, "Delete record") = MsgBoxResult.Yes Then

>  With Me.BindingContext(DsCustomer1, "tblCustomer")

>   RemoveAt(.Position)

>  End With

> End If

>End Sub

Этот код основан на созданной перед этим кнопке btnDelete. Учтите, что эта процедура запрашивает пользователей, действительно ли они хотят удалить запись. Этот запрос позволяет избежать неприятных последствий в случае, если пользовательский интерфейс создан так, что пользователь может случайно удалить запись, щелкая на кнопке Delete. (Обратите внимание, что, кроме этого способа на основе диалогового окна с предупреждением об удалении записи, можно применять более сложные методы отката ошибочных изменений данных. Однако описание таких сложных конструкций выходит за рамки данной главы.)

Учтите, что метод RemoveAt способен определять и обрабатывать стандартные исключительные ситуации, например при отсутствии данных или после очистки данных в элементе управления пользовательского интерфейса при вызове метода AddNew. Эта возможность позволяет значительно усовершенствовать методы контроля над связанными сданными элементами управления в прежних версиях Visual Basic, для которых требовалось создавать громоздкий код обработки исключительных ситуаций, возникающих при выполнении пользователями непредсказуемых действий.