다음과 같은 저장 프로 시저를 사용하여 데이터베이스에서 하나의 데이터를 가져 오려고합니다.C# 코드가 저장 프로 시저의 값을 반환하지 않는 이유
USE [PSD]
GO
/****** Object: StoredProcedure [dbo].[ocso_GetNextDTEventNumber] Script Date: 1/19/2017 10:12:19 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[ocso_GetNextDTEventNumber]
@EventNumber varchar(15) OUTPUT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
--increment last number by 1
UPDATE LU_EVENT_NUMBERS SET evn_last_number = evn_last_number + 1 where evn_year = Year(GetDate())
--return event number to caller
--Get the next event number for all incidents
SELECT @EventNumber = evn_comp_formatted_next_num from LU_EVENT_NUMBERS where evn_year = Year(GetDate())
END
나는이 SQL 코드
DECLARE @NewEventNumber varchar(15)
Execute dbo.ocso_GetNextDTEventNumber
@EventNumber = @NewEventNumber OUTPUT;
Print convert(varchar(15),@NewEventNumber)
을 사용하여이 절차를 테스트하고 내가 기대할 수있는 결과를 얻을 수 있습니다. 이제 다음과 같은 C# 코드에서 결과를 얻으려고 시도 할 때 :
빈 문자열이 다시 나타납니다. 왜 이것이 작동하지 않습니까?
귀하의 매개 변수'EventNumber' @가 아닌'@ NewEventNumber' – Crowcoder
'_cmd.CommandType = CommandType.StoredProcedure'입니다? –
감사합니다 #Crowcoder를 @EventNumber로 변경했을 때 { "프로 시저 또는 함수 'ocso_GetNextDTEventNumber'가 제공되지 않은 '@EventNumber'매개 변수를 필요로합니다."} – Perry