我有一个全文搜索查询,并尝试向其中添加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值,我可以使用引号
来发送它测试的
答案 0 :(得分:2)
转义单引号
stopWord.StopWord = stopWord.StopWord.Replace("'", "''")