"server=localhost;uid=sa;pwd=;database=novelty")
' Применение объекта SqlCommandBuilder
' для автоматической генерации команд обновления.
Private cbEmployees As SqlCommandBuilder
Private Sub btnLoad_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnLoad.Click
dsEmployeeInfo = New DataSet()
LoadCommandBuilder()
' Конфигурирование объекта-сетки DataGrid.
Me.grdDataGrid.PreferredColumnWidth = 110
Me.grdDataGrid.AllowSorting = True
' Вставка данных в объект DataSet.
daEmployees.Fill(dsEmployeeInfo, "Employees")
' Присвоение объекта DataSet объекту DataGrid.
Me.grdDataGrid.DataSource = _
dsEmployeeInfo.Tables("Employees")
Me.btnUpdate.Enabled = True
End Sub
Private Sub btnUpdate_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnUpdate.Click
daEmployees.Update(dsEmployeeInfo, "Employees")
End Sub
Private Sub LoadCommandBuilder()
Dim param As SqlParameter
If conn.State = ConnectionState.Closed Then
conn.Open()
End If
' Создание нового объекта DataAdapter.
Dim SQL As String SQL = "Select FirstName, LastName, Department ID, Salary, _
ID from tblEmployee"
daEmployees = New SqlDataAdapter(SQL, conn)
' Создание команды с помощью SqlCommandBuilder.
cbEmployees = New SqlCommandBuilder(daEmployees)
End Sub
Основная подпрограмма LoadCommandBuilder() вызывается после щелчка на кнопке Load. Она демонстрирует способ явного открытия подключения, возможность избежать возникновения исключительных ситуаций при нескольких последовательных щелчках на кнопке Load и конфигурирование адаптера данных SqlDataAdapter (объект daEmployees) и конструктора команд SqlCommandBuilder (объект cbEmployees). Эти два объекта создаются и инициализируются с помощью их конструкторов, которые принимают значения своих свойств в качестве параметров. Конструктор объекта daEmployees получает строку с командой SELECT и объект подключения, а объект cbEmployees — адаптер данных daEmployees.
Только один объект SqlDataAdapter может быть связан только с одним объектом SqlCommandBuilder.
Далее конфигурируется объект-сетка, вызывается метод Fill для загрузки таблицы Employees в объект daEmployees, задается таблица Employees для свойства DataSource объекта daEmployees и автоматически отображаются данные в сетке.
Обработчик события щелчка на кнопке Update содержит только одну строку кода, которая просто вызывает метод Update для объекта daEmployees.
Скомпонуйте проект DataSetCode и щелкните на кнопке DataAdapter Updates в форме frmDataSets. После отображения на экране формы frmUpdates щелкните на кнопке Load. Это приведет к считыванию данных из таблицы Employees, загрузке данных в объект tblEmployees объекта dsEmployeeInfo и отображению их в сетке, как показано на рис. 6.2.