我在尝试使用VB.NET,SQL命令和参数再次执行DELETE查询SQL Server表时遇到一个奇怪的问题。Sqlcommand参数未执行
我有以下代码:
Try
sqlCommand.Transaction = transaction1
sqlCommand.Connection = conn
sqlCommand.CommandText = sqlQuery
sqlCommand.Parameters.Add("@userID", SqlDbType.Int).Value = Convert.ToInt32(userID)
sqlCommand.Parameters.Add("@groupID", SqlDbType.Int).Value = Convert.ToInt32(groupID)
''#Delete the user from the group.
MessageBox.Show("User: " + Convert.ToString(userID) + " Group: " + Convert.ToString(groupID))
MessageBox.Show("Param, UserID: " + sqlCommand.Parameters.Item(0).Value.ToString)
MessageBox.Show("Param, GroupID: " + sqlCommand.Parameters.Item(1).Value.ToString)
return_deleteUser = sqlCommand.ExecuteNonQuery()
Catch ex As Exception
transaction1.Rollback()
Dim hr As Integer = Marshal.GetHRForException(ex)
MsgBox("Removal of user from group has failed: " + ex.Message() & hr)
End Try
它执行下面的SQL查询:
Dim sqlQuery As String = "DELETE FROM MHGROUP.GROUPMEMS WHERE USERNUM [email protected] AND GROUPNUM [email protected]"
我的问题是,代码执行时,没有在所有报告的错误。我运行了SQL事件探查器,查询没有出现在跟踪列表中。我添加的三个消息框全部返回正确的值,并且如果我要使用查询成功的值对表执行SQL查询。用户ID和组ID都是3位整数。
任何人都可以提出为什么代码不按预期工作,或任何进一步的调试,我可以用来逐步通过代码?理想情况下,我很想看到已完成的参数的完成SQL查询,但我还没有发现如何做到这一点。
编辑: 我在后面的代码下面来检查执行的所有成功处理:
If return_insertEvent > 0 And return_updateUser > 0 And return_nextSID > 0 And return_deleteUser > 0 Then
MessageBox.Show("Success")
return_removeADGroup = RemoveUserFromGroup(userID, groupName)
MessageBox.Show("Remove FS User from AD Group: " + return_removeADGroup)
transaction1.Commit()
transaction2.Commit()
transaction3.Commit()
transaction4.Commit()
returnResult = 1
Else
transaction1.Rollback()
transaction2.Rollback()
transaction3.Rollback()
transaction4.Rollback()
returnResult = 0
End If
如果您需要任何进一步的信息,请不要在我接触犹豫。
你有验证器transaction.commit叫? – 2010-08-14 03:17:20