繁体   English   中英

参数传递给SQL中的存储过程

[英]Parameter passing to stored procedures in SQL

我有一个从C#代码中调用的SQL过程。

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();

这是我的程序:

(
@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从不断增加的数据库中提取。 它引发此错误:

过程或函数期望未提供参数@Indent_No。

请帮忙!

由于仅在存储过程内部使用@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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM