SQL Server でストアド プロシージャを作成することをお勧めします。以下に例を示します。
CREATE PROCEDURE sp_UpdateEmployeeByID
(
@ID int,
@TitleID int,
@FirstName nvarchar(255),
@LastName nvarchar(255)
)
AS
BEGIN
SET NOCOUNT ON;
UPDATE Employee SET
TitleID = @TitleID,
FirstName = @FirstName,
LastName = @LastName
WHERE ID = @ID
END
アドホック SQL ではなくストアド プロシージャを使用すると、SQL インジェクション攻撃から保護され、パフォーマンス上の利点もあります。
次に、VB.Net を使用してストアド プロシージャを呼び出し、更新された従業員の値を渡します。
Public Sub UpdateEmployeeByID(Byval ID As Int32, Byval TitleID As Int32, Byval FirstName As string, Byval LastName As string)
Dim connString As String = ConfigurationManager.AppSettings("ConnectionString")
Dim conn As New SqlConnection(connString)
conn.Open()
Dim sqlCommand As new SqlClient.SqlCommand("sp_UpdateEmployeeByID", conn)
sqlCommand.CommandType = CommandType.StoredProcedure
sqlCommand.Parameters.AddWithValue("@ID", ID)
sqlCommand.Parameters.AddWithValue("@TitleID", TitleID)
sqlCommand.Parameters.AddWithValue("@FirstName", FirstName)
sqlCommand.Parameters.AddWithValue("@LastName", LastName)
Try
sqlCommand.ExecuteNonQuery()
Catch ex As SqlException
'Handle SQL exceptions
Catch ex As Exception
'Handle exceptions
Finally
'clean up resources that access Data
If IsNothing(sqlCommand) = False Then
sqlCommand.Dispose()
sqlCommand = Nothing
End If
conn.Close()
End Try
End Sub