【发布时间】:2014-12-23 01:13:27
【问题描述】:
这个问题快把我逼疯了。我有一段代码可以将值提交给存储过程:
using (var con = new SqlConnection(this.Connection.ConnectionString))
{
con.Open();
using (SqlCommand cmd = new SqlCommand("EXEC PerformKeywordSearch", con))
{
cmd.Parameters.Add(new SqlParameter { Value = submittedString, DbType = DbType.String, ParameterName = "@SearchString" });
using (var dr = cmd.ExecuteReader())
{
matches.Add(
int.Parse(dr["JobID"].ToString()),
float.Parse(dr["RANK"].ToString()));
}
}
}
在 SQL Server 分析器中,我可以看到它正在将其提交到数据库:
exec sp_executesql N'EXEC PerformKeywordSearch',N'@SearchString nvarchar(26)',@SearchString=N'( software AND developer )'
我总是得到错误:
过程或函数“PerformKeywordSearch”需要参数“@SearchString”,但未提供。
我不确定我为什么会得到这个,如果我将它稍微重新格式化为:
EXEC PerformKeywordSearch @SearchString=N'( software AND developer )'
然后一切正常。这是 ADO.NET 的问题,还是我需要一些巧妙的格式来完成这项工作?
【问题讨论】:
标签: sql-server stored-procedures ado.net