SQL Server 存储过程等待参数
Posted
技术标签:
【中文标题】SQL Server 存储过程等待参数【英文标题】:SQL Server stored procedure waiting parameter 【发布时间】:2018-04-03 18:56:51 【问题描述】:我有一个 SQL Server 存储过程:
exec GetBob @id=3
但是当我在函数中调用这个存储过程时,我得到了错误:
过程或函数需要@id 参数
但是@id
是正确的参数(获取值)。
public List<Bob> GetBob(int id)
try
connection();
con.Open();
DynamicParameters param = new DynamicParameters();
param.Add("@id", id);
IList<Bob> EmpList = SqlMapper.Query<Bob>(con, "GetBob", param).ToList();
con.Close();
return EmpList.ToList();
catch (Exception)
throw;
【问题讨论】:
旁注:这里不需要DynamicParameters
;只需new id
作为参数就可以了。附加说明:.AsList()
比.ToList()
效率略高;额外的附加说明:你知道你实际上不需要Open()
dapper 的连接,尤其是对于这样的场景? Dapper 会处理它。
【参考方案1】:
试试这个。你应该很好。您需要提供command Type
,它是Stored Procedure
。
public List<Bob> GetBob(int id)
try
connection();
con.Open();
DynamicParameters param = new DynamicParameters();
param.Add("@id", id);
IList<Bob> EmpList = SqlMapper.Query<Bob>(
con, "GetBob",param,commandType: CommandType.StoredProcedure).ToList();
con.Close();
return EmpList.ToList();
catch (Exception)
throw;
【讨论】:
"Express parametr "@id" 参数未指定。" (我的翻译)以上是关于SQL Server 存储过程等待参数的主要内容,如果未能解决你的问题,请参考以下文章