Я сталкиваюсь со странной проблемой при попытке выполнить запрос DELETE снова с таблицей SQL Server, используя VB.NET, команду SQL и параметры.
У меня есть следующий код:
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 =@userID AND GROUPNUM =@groupID"
Моя проблема заключается в том, что при выполнении кода вообще не сообщается об ошибке.Я запустил SQL Profiler, и запрос не отображается в списке трассировки.Все три окна сообщений, которые я добавил, возвращают правильные значения, и если я должен был выполнить SQL-запрос к таблице со значениями, запрос выполняется успешно.И userID, и groupID являются трехзначными целыми числами.
Кто-нибудь может подсказать, почему код не работает должным образом, или какую-либо дальнейшую отладку, которую я могу использовать для пошагового выполнения кода?В идеале я хотел бы видеть завершенный 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
Если вам требуется дополнительная информация, пожалуйста, не стесняйтесь обращаться ко мне.