使用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匹配输入参数名称。
两个存储过程之间的唯一区别是我添加了输入参数,所以我知道过程有效。
答案 0 :(得分:0)
我的猜测:你真的在参数名中加入@
吗?
答案 1 :(得分:0)
是的,我做到了。原来这不是问题所在。问题在于创建期间在存储过程上设置的权限。无论如何,谢谢!