2014-04-05 4 views
0

C# 코드에서 호출하는 SQL 프로 시저가 있습니다.SQL의 저장 프로 시저에 전달되는 매개 변수

(
@IP_No varchar(15),  
@Indent_No varchar(20) 
) 
AS 
BEGIN 
set @Indent_No = (SELECT IndentId from IdTable) 

INSERT INTO InsertData(IP_No,Indent_No) 
VALUES(@IP_No,@Indent_No) 

Update IdTable set IndentId=IndentId+1; 

END 

는 기본적으로, 나는 내 ID는 내가 증가 계속 데이터베이스에서 뽑아 싶지 :

cmd = new SqlCommand("InsertData", con, transaction); 
cmd.CommandType = CommandType.StoredProcedure; 

cmd.Parameters.Add("@IP_No", SqlDbType.VarChar, 50); 
cmd.Parameters["@IP_No"].Value = data.IP_No; 

result = cmd.ExecuteNonQuery().ToString(); 

내 절차입니다. 이 오류가 발생합니다 :

Procedure or function expects parameter @Indent_No which was not supplied.

제발 도와주세요!

답변

0

@Indent_No을 저장 프로 시저 내에서만 내부적으로 사용하므로 입력 매개 변수로 선언 할 필요가 없습니다. 저장 프로 시저 본문 내에서 선언해야합니다.

CREATE PROCEDURE InsertData 
(
@IP_No varchar(15) 
) 
AS 
BEGIN 

DECLARE @Indent_No varchar(20) 

set @Indent_No = (SELECT IndentId from IdTable) 

INSERT INTO InsertData(IP_No,Indent_No) 
VALUES(@IP_No,@Indent_No) 

Update IdTable set IndentId=IndentId+1; 

END 
관련 문제