Обработка баз данных на 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,
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
param.SourceColumn = "Salary"
param.SourceVersion = DataRowVersion.Current
param = daEmployees.UpdateCommand.Parameters.Add( _
New SqlParameter("@Original_ID, SqlDbType.Int))
param.Direction = ParameterDirection.Input
param.SourceColumn = "ID"
param.SourceVersion = DataRowVersion.Original
' Создание специализированной
' хранимой процедуры для команды Delete.
Поделиться с друзьями: