【发布时间】:2015-05-04 20:49:08
【问题描述】:
我正在尝试从 C# 程序访问存储过程,令人难以置信的是,我得到了
过程或函数“procedure_name”需要参数“@agency”, 没有提供。
除了它是提供的:
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 的调试器下运行它时,我确实确认参数在预期的位置具有必要的值。
【问题讨论】:
-
@GrantWinney,正如您所知道的,Marc_s 击败了您,但感谢您的评论和回答,因为这是我最先看到的并做了面部表情。
-
@GrantWinney,所谓的重复项几乎是在这个被问到的同时被问到的(目前还看不到确切的时间戳)。为什么不将 OTHER 标记为重复项?
-
我知道这对我没有任何好处,当然也不会造成任何痛苦,因此,@GrantWinney,但如果我告诉你它伤害了我的感情,你会在意吗? :-) 别担心,我真的不觉得被轻视!只是为了掩饰我对世界一般状况的痛苦而开玩笑。
-
不,不!我喜欢事物的本来面目,@GrantWinney,相信我!只要我的声誉提高,一切都很好。
标签: c# stored-procedures sql-server-2012