更新を行うストアド プロシージャを次に示します。SQL Server を使用してプロシージャをテストすると、完全に機能します。
ALTER PROCEDURE [TKSFlex].[UpdateComment]
-- Add the parameters for the stored procedure here
@Comment char(50),
@Employee char(25)
AS
BEGIN TRANSACTION
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT On;
-- Insert statements for procedure here
Update whiteboard set Comment = @Comment
where Employee = @Employee
COMMIT
そして、更新ボタンがクリックされたときに実行されるコードは次のとおりです
Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal es System.EventArgs) Handles btnUpdate.Click
InputsModule.Employee = "'Mathe BF'"
Objconn.Open()
dbcommand.Connection = Objconn
dbcommand.CommandType = CommandType.StoredProcedure
dbcommand.CommandText = "[TKSFlex].[UpdateComment]"
dbcommand.Parameters.AddWithValue("@Comment", txtComment.Text)
dbcommand.Parameters.AddWithValue("@Employee", InputsModule.Employee)
'dbcommand.Parameters.Add("@Comment", SqlDbType.Char).Value = txtComment.Text
'dbcommand.Parameters.Add("@Employee", SqlDbType.Char).Value = InputsModule.Employee
Dim i As Integer = 0
Try
i = dbcommand.ExecuteNonQuery()
Catch ex As SqlException
MsgBox("failed")
End Try
Objconn.Close()
End Sub
クエリが実行されたときにテーブルが更新されず、例外がスローされないため、コードが実行されてもデータベースに変更が加えられていないことを意味します。どこで間違ったのかわかりません