【问题标题】:Procedure insertSerial has no parameters and arguments were supplied过程 insertSerial 没有参数并且提供了参数
【发布时间】:2012-11-05 10:25:50
【问题描述】:

下面是我存储在 MSSQL 服务器中的 SP。

USE [testdb]
GO
/****** Object:  StoredProcedure [dbo].[insertSerial]    Script Date: 11/05/2012 16:38:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[insertSerial]
AS

DECLARE @start int
DECLARE @end int
DECLARE @expdate datetime

BEGIN TRAN
WHILE @start < @end
BEGIN
 INSERT tbl_serial VALUES (@start, @expdate)
 SET @start = @start + 1
 END
 COMMIT TRAN    

然后我尝试像这样从我的 ASP.NET 应用程序调用 SP -

        SqlConnection sqlconn = new SqlConnection(ConfigurationManager.ConnectionStrings["connstr"].ConnectionString);
        SqlCommand cmd = new SqlCommand("insertSerial", sqlconn);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@start", txtStart.Text);
        cmd.Parameters.AddWithValue("@end", txtEnd.Text);
        cmd.Parameters.AddWithValue("@expdate", System.DateTime.Now);

        try
        {
            sqlconn.Open();
            cmd.ExecuteNonQuery();
        }
        catch (SqlException ex)
        {
            lblStatus.Text = ex.Message;
        }
        finally
        {
            sqlconn.Close();
        }

然后我得到了这个Procedure insertSerial has no parameters and arguments were supplied. 错误。是不是因为我在SP中声明参数的方式不对?如果是这样,我该如何解决?

【问题讨论】:

    标签: c# asp.net stored-procedures


    【解决方案1】:

    sp是无效的sql

    这是如何声明参数

    ALTER PROCEDURE [dbo].[foo] @bar INT AS BEGIN

    【讨论】:

    • 您好约翰,感谢您的回答。但是,我仍然不明白它是如何完成的。您能否通过修改我的代码向我展示示例?
    • 没关系,我已经重新创建了另一个 SP 作为您的示例。现在效果很好:)
    【解决方案2】:

    您的存储过程没有参数,因此您可以在存储过程between bracketsdeclare your parameters

    CREATE PROCEDURE dbo.insertSerial
    (
        @start  varchar(1024),
        @end varchar(1024),
        @expdate datetime
    
    )
    ....
    

    【讨论】:

    • 但我想从文本框中传递值。
    • 是的,但是你必须在你的存储过程中声明你的参数,你的代码c#很好
    【解决方案3】:

    你是这个SP中声明的SQL变量,你需要在这个SP中定义参数 喜欢

    ALTER PROCEDURE [dbo].[insertSerial]
     @start int
     @end int
     @expdate datetime
    AS 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-29
      • 1970-01-01
      • 1970-01-01
      • 2014-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多