@ Parameter1不是过程的参数

时间:2012-10-11 16:44:50

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

ALTER PROCEDURE [dbo].[NST_InsertTblGenLedDet]
        @GHDHeader int,
      @Gldtype text,
      @GldAccount text,
      @GldDate DateTime, 
      @GldVoucherType int,
      @GldDebit   float=null,
      @GldCredit float= null,
      @GldDtaLine int= null
AS
DECLARE @ERR INT
BEGIN TRANSACTION
Insert into [TblGenLedDet] 
(GHDHeader,Gldtype,GldAccount,GldDate, GldVoucherType, GldDebit,GldCredit,GldDtaLine)
 values (@GHDHeader,@Gldtype,@GldAccount,@GldDate, @GldVoucherType, @GldDebit,@GldCredit,@GldDtaLine)



SET @ERR = @@Error
IF @ERR = 0   
BEGIN
      COMMIT TRANSACTION

END
ELSE
BEGIN
      ROLLBACK TRANSACTION
      RETURN @ERR               
END

enter image description here

我一次又一次地收到此错误,虽然我已将参数名称指定为@GldCredit,但它将参数名称显示为Parameter1

2 个答案:

答案 0 :(得分:9)

在您的代码中,您初始化gldCredit,然后更新gldDebit。您的gldCredit参数永远不会设置任何成员,因此其ParaameterName已经被归为"@Paremeter1"

您似乎复制/粘贴了gldDebit代码来设置参数,但忘记更新新代码块中的所有引用以指向gldCredit

答案 1 :(得分:1)

为未来的读者分享 -

@ParameterName代码中的C#@Parameter_Name中的stored-procedures不同时,也会抛出此错误。