gpt4 book ai didi

c# - 如何解决 "Procedure or function has too many arguments specified"异常?

转载 作者:太空狗 更新时间:2023-10-30 01:31:22 30 4
gpt4 key购买 nike

我有几个用于更新不同表的存储过程。当我执行它们时,我得到如下异常

Procedure or function has too many arguments specified

我尝试了在互联网上找到的答案,但无法修复它。
这是我的一个存储过程的代码

cmd.CommandText = "update_HS_HR_EMP_BANK_AADM";
cmd.Parameters.Add("@appNo", SqlDbType.VarChar).Value = appNo;
cmd.Parameters.Add("@BRANCH_CODE", SqlDbType.VarChar).Value = branch;
cmd.Parameters.Add("@ACCOUNTNO", SqlDbType.VarChar).Value = account;
cmd.Parameters.Add("@ACCOUNT_TYPE", SqlDbType.VarChar).Value = type;
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();

这是我的存储过程

    ALTER PROCEDURE [dbo].[update_HS_HR_EMP_BANK_AADM] 
@appNo int,
@BRANCH_CODE VARCHAR(10),
@ACCOUNTNO VARCHAR(50),
@ACCOUNT_TYPE VARCHAR(1)

AS
BEGIN

Update [HS_HR_EMP_BANK_AADM]
SET
[BBRANCH_CODE]=@BRANCH_CODE
,[EBANK_ACC_NO]=@ACCOUNTNO
,[EBANK_ACC_TYPE_FLG]=@ACCOUNT_TYPE
,[EBANK_ACTIVE_FLAG]=1
,[LAST_MODIFIED_DATE]=GETDATE()
Where App_no=@appNo
END

最佳答案

有几件事你应该尝试调查

检查连接字符串以检查它是否访问了正确的数据库

尝试指定命令类型:

cmd.CommandType = System.Data.CommandType.StoredProcedure;

然后将您为 appNo 传递的参数类型从 Varchar 更改为 Int。

cmd.Parameters.Add("@appNo", SqlDbType.VarChar).Value = appNo;

根据存储过程,它应该是 int。

cmd.Parameters.Add("@appNo", SqlDbType.Int).Value = appNo;

关于c# - 如何解决 "Procedure or function has too many arguments specified"异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41582653/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com