【问题标题】:SQL Server error Procedure or function 'PerformKeywordSearch' expects parameter '@SearchString', which was not suppliedSQL Server 错误过程或函数“PerformKeywordSearch”需要参数“@SearchString”,但未提供该参数
【发布时间】: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


【解决方案1】:

请尝试如下:

SqlConnection sqlConnection1 = new SqlConnection("Your Connection String");
SqlCommand cmd = new SqlCommand();
SqlDataReader reader;

cmd.CommandText = "PerformKeywordSearch";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@SearchString", SqlDbType.VarChar).Value = "software AND developer";
cmd.Connection = sqlConnection1;

sqlConnection1.Open();
// Return value use reader
reader = cmd.ExecuteReader();
// Not return value use
cmd.ExecuteNonQuery()

sqlConnection1.Close();

此链接参考:http://msdn.microsoft.com/en-us/library/d7125bke.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2

【讨论】:

    猜你喜欢
    • 2015-01-25
    • 1970-01-01
    • 2020-12-14
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多