Imports System.Data.SqlClient 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Imports System.Data.SqlClient



 

8. Web-форма Calls использует для доступа к данным компоненты, определенные в файле Global.asax, поэтому вам понадобятся ссылки на компоненты (они хранятся в переменных состояния), созданные во время выполнения задания 2. Ниже показан код, объявляющий ряд объектов и обрабатывающий событие Page_Load. Этот код получает ссылки на компоненты для работы с БД, делая их доступными коду формы:

 

Dim ContactMgmt As SqlConnection

Dim adptContacts As SqlDataAdapter

Dim adptCalls As SqlDataAdapter

Dim dsContacts As New dsContacts()

Private Sub Page_Load(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles MyBase.Load

' Получить сеансовые переменные состояния.

ContactMgmt = Session("ContactMgmt")

adptContacts = Session("adptContacts")

adptCalls = Session("adptCalls")

dsCalls = Session("dsCalls")

dsContacts = Session("dsContacts")

' Этот код выполняется при первом отображении формы.

If Not IsPostBack Then

' Заполнить набор данных Contacts.

AdptContacts.Fill(dsContacts)

' Для каждой строки таблицы...

Dim rowNext As dsContacts.ContactsRow

For Each rowNext In dsContacts.Contacts

'...создать новый элемент списка.

Dim lstNew As New ListItem()

lstNew.Text = rowNext.FirstName & " " & rowNext.LastName

lstNew.Value = rowNext.ContactID

' добавить элемент к раскрывающемуся списку.

DrpContacts.Items.Add(lstNew)

Next

' Выбрать первый элемент в списке.

drpContacts.SelectedIndex = 0

End If

End Sub

9. Web-форма Calls модифицирует набор данных Calls во время выполнения. Чтобы после обработки страницы записать набор данных обратно в переменную состояния, необходимо добавить к обработчику события Page_PreRender (это последнее событие, которое обрабатывается перед отображением страницы) следующий код:

 

Private Sub Page_PreRender(ByVal sender As Object, _

ByVal e As System.EventArgs) Handles MyBase.PreRender

' Записать набор данных в сеансовую переменную состояния.

Session("dsCalls") = dsCalls

End Sub

 

10. Добавьте к обработчикам события Click кнопок View и Add следующий код:

 

Private Sub butView_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles butView.Click

' Создать команду для выборки из набора данных.

adptCalls.SelectCommand.CommandText = "SELECT * FROM Calls " & _

"WHERE ContactID=" & drpContacts.SelectedItem.Value

' Очистить набор данных.

DsCalls.Clear

' Заполнить набор данных сведениями о звонках.

AdptCalls.Fill(dsCalls)

' Связать элемент управления DataList с данными.

DlstCalls.DataBind()

End Sub

Private Sub butAddCall_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles butAddCall.Click

' Задать исходные значения даты и времени.

txtDate.Text = Now.ToShortDateString()

txtTime.Text = Now.ToShortTimeString()

' Сделать панель для добавления звонков видимой.

pnlAdd.Visible = True

' Деактивировзть кнопки и раскрывающийся список.

butView.Enabled = False

butAddCall.Enabled = False

drpContacts.Enabled = False

End Sub

 

11. Добавьте вспомогательную функцию, которая получает новое значение CalllD. Поскольку поле CalllD является первичным ключом в таблице Calls, его значение должно быть уникальным внутри БД:

 

' Эта функция возвращает новое уникальное значение CalllD.

Private Function GetCallID() As Integer

Dim cmdNewID As New SqlCommand("SELECT MAX(CallID)" & _

" FROM Calls", ContactMgmt)

' Открыть соединение с БД

ContactMgmt.Open()

' Получить наибольшее значение ключа.

Dim intID As Integer

' Проверить, существует ли запись

If Not (cmdNewID.ExecuteScalar() Is DBNull.Value) Then

' Получить наибольшее число...

intID = CInt(cmdNewID.ExecuteScalar())

Else

'...или присвоить intID значение О.

intID = 0

End If

' Закрыть соединение.

ContactMgmt.Close()

' Вернуть новое значение ключа (оно будет на единицу больше прежнего).

Return intID + 1

End Sub

 

12. Добавьте к обработчикам событий кнопок ОК и Cancel код, показанный ниже. Он очень похож на обработчики событий, использованные для добавления (или отмены добавления) записей в таблицу Contacts (см. предыдущее задание).

 

Private Sub butOKAdd_Click(ByVal sender As System.Object, _



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 117; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.227.190.93 (0.006 с.)