首页 > 解决方案 > 参数化全文搜索查询

问题描述

我有一个全文搜索查询并尝试添加 Sql 参数。这是我的代码

using (var connection = GetDbConnection())
         {
            connection.Open();
            using (var cmd =
               new SqlCommand(
                  string.Format("ALTER FULLTEXT STOPLIST [{0}] ADD @stopWord LANGUAGE [{1}];", stopWord.StopList,
                     stopWord.Language), (SqlConnection)connection))
            {
               cmd.Parameters.AddWithValue("@stopWord", stopWord.StopWord);

               cmd.ExecuteNonQuery();
            }
         }

但它会出错

'@stoplist' 附近的语法不正确。---> System.Data.SqlClient.SqlException:'@stoplist' 附近的语法不正确。

如何构建查询以防止 sql 注入?例如作为 stopWord 值,我可以用引号发送这个

测试的

标签: c#sql-server

解决方案


转义单引号

stopWord.StopWord = stopWord.StopWord.Replace("'", "''")

推荐阅读