SqlDependencies - 使用存储过程作为命令时,如何指定输入参数

时间:2010-03-12 09:49:52

标签: c# sql tsql dependencies

使用folllwing创建命令时:

_command = new SqlCommand(statementOrProcedure, _connection) { CommandType = CommandType.StoredProcedure };

并且存储过程不需要输入参数,它可以正常工作。

只要存储过程需要输入参数,我就会执行以下操作:

private void AddStoredProcedureParameters(Dictionary<string, object> parameters)
 {
     if (parameters != null)
         {
             foreach (KeyValuePair<string, object> param in parameters)
                 {
               _command.Parameters.Add(new SqlParameter(param.Key, param.Value) { Direction = ParameterDirection.Input });
           }
      }
 }

SQLDependency不断返回Invalid from Statement。我100%确定param.Key匹配输入参数名称。

两个存储过程之间的唯一区别是我添加了输入参数,所以我知道过程有效。

2 个答案:

答案 0 :(得分:0)

我的猜测:你真的在参数名中加入@吗?

答案 1 :(得分:0)

是的,我做到了。原来这不是问题所在。问题在于创建期间在存储过程上设置的权限。无论如何,谢谢!