나는 다음과 같은 저장 프로 시저가 있습니다VB.NET
Dim sqlConnection As New SqlConnection(MSSQL_Helper.strConnectionBookit)
Dim command As New SqlCommand("BK_NUMBER", sqlConnection)
command.CommandType = CommandType.StoredProcedure
command.Parameters.Add("@Category", SqlDbType.Int).Value = ID
Dim returnParameter As SqlParameter = command.Parameters.Add("RetVal", SqlDbType.Int)
returnParameter.Direction = ParameterDirection.ReturnValue
sqlConnection.Open()
command.ExecuteNonQuery()
sqlConnection.Close()
Dim returnValue As Integer = returnParameter.Value
Return returnValue
하지만 "항상 0을 반환 :이 VB 코드 @newRunningNumber
를 얻으려고
ALTER PROCEDURE [dbo].[BK_NUMBER]
(@Category NUMERIC(38, 0))
WITH EXECUTE AS CALLER
AS
DECLARE @RunningNumber Int
DECLARE @min Int
DECLARE @max Int
DECLARE @newRunningNumber Int
BEGIN
SELECT @RunningNumber = RunningNumber
FROM PARKMARKENNUMMER
WHERE PARKMARKENTYP_ID = @Category
UPDATE PARKMARKENNUMMER
SET RUNNINGNUMBER = @RunningNumber + 1
WHERE PARKMARKENTYP_ID = @Category
SELECT @newRunningNumber = RunningNumber
FROM PARKMARKENNUMMER
WHERE PARKMARKENTYP_ID = @Category
RETURN @newRunningNumber;
End;
을 ". 내가 도대체 뭘 잘못하고있는 겁니까?
매개 변수로 전달하는 범주에 대해 SQL Server에서 SP를 실행하고 0을 반환하지 않는 것으로 확인 했습니까? –
반환 값이 아닌 OUTPUT 매개 변수를 사용하십시오. 반환 값은 데이터가 아니라 오류/상태 코드입니다. –
DB를 보면 PARKMARKENNUMMER의 RunningNumber에 값이 있습니까? null의 경우, add는 null를 제공해 영속화합니다. – asantaballa