Cyb*_*ist 2 c# stored-procedures sql-server-2012
我正在尝试从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);
Run Code Online (Sandbox Code Playgroud)
存储过程如下所示:
CREATE PROCEDURE [dbo].[procedure_name]
(
@agency varchar(3)
, @subagency varchar(1)
, @start datetime
, @end datetime
)
AS
Run Code Online (Sandbox Code Playgroud)
我已经做了多年和几年类似的存储过程调用,没有出现完全有效和正确的调用问题.顺便说一句,从Sql Management Studio执行时,此存储过程工作正常.
请注意,我已经更改了参数的顺序,并为第一个参数获得相同的响应,无论哪个参数.
当我在Visual Studio中的调试器下运行它时,我确认parms在预期的位置具有必要的值.
你需要告诉你SqlCommand它正在处理一个存储过程 - 像这样:
SqlCommand cmd = new SqlCommand(sp);
-- add this line
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = conn;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |