命名的 SqlParameters 未被识别
Named SqlParameters not being recognized
我正在尝试从 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# 程序访问存储过程,令人难以置信的是,我得到了
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;