Сохраненная процедура не обновляет базу данных
База данных не обновляется, но я не уверен, где она падает.
Я использовал многочисленные в прошлом, но я не понимаю, почему это не работает. Если бы я мог видеть, как запустить проверку ошибок в хранимой процедуре, я подозреваю, что это поможет.
Тесты:
проходят переменные к метке, после запроса хранимой процедуры в коде .aspx, чтобы проверить значения существует (слева в коде)
Изменения Int к VARCHAR в хранимой процедуре
Запрос:
Как это исправить, а затем, как я могу запустить тесты, чтобы найти проблемы в будущем
S tored Процедура:
USE [DATABASE]
GO
/****** Object: StoredProcedure [dbo].[spChangeValue] Script Date: 11/08/2015 12:02:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
ALTER PROCEDURE [dbo].[spRiskRatingChange]
@ActionID int,
@EmployeeID int,
@NewRating varchar(10)
AS
DECLARE @DateChanged AS nvarchar(max)
SET @DateChanged = GETDATE()
DECLARE @OldRating AS nvarchar(max)
DECLARE @OldComments AS nvarchar(max)
DECLARE @EmployeeName AS nvarchar(max)
SET @OldRating =
(
SELECT OverallRiskCategory FROM TblAsbestos WHERE ID = @ActionID
)
SET @OldComments =
(
SELECT Comments FROM TblAsbestos WHERE ID = @ActionID
)
SET @EmployeeName =
(
SELECT UserFirstName + ' ' + UserSurname FROM SystemUsers WHERE ID = @EmployeeID
)
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
UPDATE TblAsbestos SET OverallRiskCategory = @NewRating, RiskCategory = @NewRating,
Comments= ('Rating changed from ' + RTRIM(@OldRating) + ' to '
+ RTRIM(@NewRating) + 'By ' + @EmployeeName + ' on ' + @DateChanged + ' -- ' + @OldComments)
WHERE ID = @ActionID
END
Код в .aspx.vb
Dim connection As SqlConnection
Dim command As New SqlCommand
Dim ds As New DataSet
Dim ConnectionString1 As String = System.Configuration.ConfigurationManager.ConnectionStrings("VINCI_SQL").ToString()
connection = New SqlConnection(ConnectionString1)
connection.Open()
With command
.Connection = connection
.CommandText = "spRiskRatingChange" 'include audit names
.CommandType = CommandType.StoredProcedure
.Parameters.Clear()
.Parameters.AddWithValue("@ActionID", Session("ActionID").ToString)
.Parameters.AddWithValue("@EmployeeID", Session.Item("EmployeeID").ToString)
.Parameters.AddWithValue("@NewRating", ddOverallRiskCategoryEdit.SelectedValue)
.ExecuteNonQuery()
lblErrorMessageRatings.Visible = True
lblErrorMessageRatings.Text = "Action ID: " & Session("ActionID").ToString
lblErrorMessageRatings.Text = lblErrorMessageRatings.Text & " EmployeeID: " & Session("EmployeeID").ToString
lblErrorMessageRatings.Text = lblErrorMessageRatings.Text & " NewRating: " & ddOverallRiskCategoryEdit.SelectedValue
прочитанной элементы, такие как:
UPDATE Stored Procedure not Updating
что произойдет, если вы запустите его напрямую в sql? – TZHX
Я добавил значения как: @ActionID int = '11829', @ EmployeeID int = '143', @ NewRating varchar (10) = 'Test', но не было изменений в БД. – indofraiser
единственный раз, когда вы используете '@ NewRating' в своем sproc, когда вы строите комментарий - это намеренно? – TZHX