c# - 参数化全文搜索查询
问题描述
我有一个全文搜索查询并尝试添加 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 值,我可以用引号发送这个
测试的
解决方案
转义单引号
stopWord.StopWord = stopWord.StopWord.Replace("'", "''")
推荐阅读
- laravel - laravel 5.5 多用户在一张表上注册登录
- python - 防止轴和列标签从 matplotlib 中的热图溢出
- r - 如何使用默认顺序制作图例,因为它们出现在数据框中
- linux - 更改两个 EC2 实例之间的主弹性网络接口 (ENI)
- javascript - 将 JSON 对象传递给代码隐藏文件
- html - 边距顶部:自动将最后一个列表项发送到底部,但项目被切断
- html - CSS文本溢出省略号在Grid / Flex中不起作用
- nativescript - Nativescript 边距 CSS 被忽略
- qt - 如何使用 QML 创建启动画面
- sql-server - 避免使用 SQL Server 触发器更新列