Обработка баз данных на Visual Basic®.NET
Шрифт:
IF EXISTS (SELECT * FROM sysobjects WHERE name
'DeleteEmployee' and user_name
DROP PROCEDURE [dbo].[DeleteEmployee]
GO
create procedure [dbo].[DeleteEmployee] (@Original_ID int)
AS
SET NOCOUNT ON;
DELETE FROM tblEmployee
WHERE (ID = @Original_ID)
GO
Вернемся к коду приложения. Во-первых, изменим первую строку кода в подпрограмме btnLoad_Click, т.е. вместо вызова подпрограммы LoadCommandBuilder вставим вызов подпрограммы LoadExplicitCode. Кроме того, для отладки явно заданного кода для команды обновления нужно добавить блок Try-Catch в подпрограмму btnUpdate_Click, которая теперь будет иметь приведенный ниже вид.
Private Sub btnUpdate_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnUpdate.Click
Try
daEmployees.Update(dsEmployeeInfo, "Employees")
Catch es As SqlException
MessageBox.Show(es.Message)
End Try
End Sub
Наконец, код подпрограммы LoadExplicitCode будет выглядеть так, как показано в листинге 6.5.
Листинг 6.5. Подпрограмма LoadExplicitCode для четырех специализированных команд SQL для адаптера данных daEmployees
Private Sub LoadExplicitCode
Dim param As SqlParameter
If conn.State = ConnectionState.Closed Then
conn.Open
End If
' Создание нового объекта DataAdapter.
daEmployees = New SqlDataAdapter
' Создание специализированной
' хранимой процедуры для команды Select.
daEmployees.SelectCommand = New SqlCommand
With daEmployees.SelectCommand
.Connection = conn
.CommandType = CommandType.StoredProcedure
.CommandText = "SelectEmployees"
End With
' Создание специализированной
' хранимой процедуры для команды Insert.
daEmployees.InsertCommand = New SqlCommand
With daEmployees.InsertCommand
.Connection = conn
.CommandType = CommandType.StoredProcedure.CommandText = "InsertEmployee"
End With
param = daEmployees.InsertCommand.Parameters.Add(_
New SqlParameter(@FirstName", SqlDbType.VarChar, 50))
param.Direction = ParameterDirection.Input
param.SourceColumn = "FirstName"
param.SourceVersion = DataRowVersion.Current
param = daEmployees.InsertCommand.Parameters.Add( _
New SqlParameter("@LastName", SqlDbType.VarChar, 70))
param.Direction = ParameterDirection.Input
param.SourceColumn = "LastName"
param.SourceVersion = DataRowVersion.Current
param = daEmployees.InsertCommand.Parameters.Add(_
New SqlParameter("@DepartmentID, SqlDbType.Int))
param.Direction = ParameterDirection.Input
param.SourceColumn = "DepartmentID"
param.SourceVersion = DataRowVersion.Current
param = daEmployees.InsertCommand.Parameters.Add( _
New SqlParameter("@Salary", SqlDbType.Money))
param.Direction = ParameterDirection.Input
param.SourceColumn = "Salary"
param.SourceVersion = DataRowVersion.Current
' Создание специализированной
' хранимой процедуры для команды Update.
daEmployees.UpdateCommand = New SqlCommand
With daEmployees.UpdateCommand
.Connection = conn
.CommandType = CommandType.StoredProcedure
.CommandText = "UpdateEmployee"
End With
param = daEmployees.UpdateCommand.Parameters.Add( _
New SqlParameter("@FirstName@, SqlDbType.VarChar, 50))
param.Direction = ParameterDirection.Input
param.SourceColumn = "FirstName"
param.SourceVersion = DataRowVersion.Current
param = daEmployees.UpdateCommand.Parameters.Add( _
New qlParameter("@LastName", SqlDbType.VarChar, 70))
param.Direction = ParameterDirection.Input
param.SourceColumn = "LastName"
param.SourceVersion = DataRowVersion.Current
param = daEmployees.UpdateCommand.Parameters.Add( _
New SqlParameter("@DepartmentID, SqlDbType.Int))
param.Direction = ParameterDirection.Input
param.SourceColumn = "DepartmentID"
param.SourceVersion = DataRowVersion.Current
param = daEmployees.UpdateCommand.Parameters.Add( _
New SqlParameter("@Salary, SqlDbType.Money))
param.Direction = ParameterDirection.Input
Поделиться:
Популярные книги
Кодекс Крови. Книга ХVI
16. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.25
рейтинг книги
Адепт. Том 1. Обучение
6. Совсем не герой
Фантастика:
фэнтези
9.27
рейтинг книги
Возлюби болезнь свою
Научно-образовательная:
психология
7.71
рейтинг книги
Северные сказки
Детские:
сказки
5.00
рейтинг книги
Газлайтер. Том 12
12. История Телепата
Фантастика:
фэнтези
попаданцы
аниме
5.75
рейтинг книги
Третий
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Эпоха Опустошителя. Том VIII
8. Вечное Ристалище
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Убийственно просто
1. Рой Грейс
Детективы:
триллеры
8.97
рейтинг книги
Наследие Маозари 8
8. Наследие Маозари
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
постапокалипсис
рпг
фэнтези
эпическая фантастика
5.00
рейтинг книги
Бастард
1. Последняя жизнь
Фантастика:
фэнтези
героическая фантастика
попаданцы
5.86
рейтинг книги
Ратник
3. Помещик
Фантастика:
альтернативная история
7.11
рейтинг книги
Скоморошины
Проза:
русская классическая проза
6.60
рейтинг книги
Второгодка. Книга 2. Око за око
2. Второгодка
Фантастика:
героическая фантастика
альтернативная история
фэнтези
5.00
рейтинг книги
Жребий брошен
10. Ведун
Фантастика:
фэнтези
8.90