gpt4 book ai didi

c# - 命名的 SqlParameters 无法识别

转载 作者:行者123 更新时间:2023-12-03 21:40:07 26 4
gpt4 key购买 nike

我正在尝试从 C# 程序访问存储过程,令人难以置信的是,我得到了

Procedure or function 'procedure_name' expects parameter '@agency', which was not supplied.

除了它提供的:

SqlCommand cmd = new SqlCommand(sp);
cmd.Connection = conn;

SqlParameter parm = new SqlParameter();
parm.ParameterName = "@agency";
parm.SqlDbType = SqlDbType.VarChar;
parm.Size = 3;
parm.Value = txtAgency.Text.Trim();
cmd.Parameters.Add(parm);

存储过程如下所示:

CREATE PROCEDURE [dbo].[procedure_name]
(
@agency varchar(3)
, @subagency varchar(1)
, @start datetime
, @end datetime
)
AS

我多年来一直进行类似的存储过程调用,而在完全有效且正确的调用中却没有出现此问题。顺便说一句,当从 Sql Management Studio 执行时,这个存储过程工作得很好。

请注意,我更改了参数的顺序,并为第一个参数获得了相同的响应,无论它是哪个。

当我在 Visual Studio 中的调试器下运行它时,我确实确认参数在预期位置具有必要的值。

最佳答案

您需要告诉您的SqlCommand它正在处理存储过程 - 如下所示:

SqlCommand cmd = new SqlCommand(sp);
-- add this line
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = conn;

关于c# - 命名的 SqlParameters 无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30039687/

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