【问题标题】:Parameter passing to stored procedures in SQL参数传递给 SQL 中的存储过程
【发布时间】:2014-05-17 19:15:42
【问题描述】:

我有一个从我的 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,而这不是 提供。

请帮忙!

【问题讨论】:

    标签: c# asp.net sql stored-procedures


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-07-21
      • 2016-04-05
      • 2015-12-20
      • 2013-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多