c# - 即使我不打算在查询中使用它,编写 dBCommand.AddParameter 是否安全?
问题描述
场景:我的查询变量是动态的,有 4 个可能的值取决于报告类型 ( _reportType
)。这意味着有 4 个不同的查询,其中一些@STAFF
在where
条件中没有,所以我的问题是,离开我的查询是否安全
dBCommand.AddParameter("@STAFF", staff)
为了安全起见,还是应该包括 if else 条件?
像这样
if(_reportType == 1)
{
dBCommand.AddParameter("@STAFF", staff);
}
else if (_reportType == 2)
{
//code
}
else if (_reportType == 3)
{
//code
}
else
{
//Don't add dBCommand.AddParameter("@STAFF", staff);
}
addParameter("@STAFF", staff)
即使我不打算在查询中使用它,离开它是否安全?
我要写的例子
dBCommand.Initialize(string.Format(query, "RetailTable"), batch);
dBCommand.AddParameter("@STAFF", staff);
但是条件@STAFF
中没有查询值WHERE
解决方案
除了将值发送到服务器的少量开销之外,通常应该可以指定未使用的参数。例外情况是,如果您执行的 DDL 查询限制为批处理中的唯一语句(例如CREATE VIEW
)。由于参数,这些将失败。
推荐阅读
- python - python,requests,lxml:在 CSS 网格上模拟选项卡更改
- python - 有没有办法从列表中的每个项目中删除相同的字符?
- reactjs - 如何在 React 弹出窗口中显示外部 html
- sql - 具有逐行子查询的 sql 列
- python - 在 Python 中测试期间的 CPU 利用率?
- javascript - React:如何在 API 数据加载到我的 chart.js 图表时显示加载微调器
- sql - Oracle sql检查日期字段的约束
- python - 是否有可能将 NaN 值作为空白写入 txt 文件?
- mongodb - 子查询来计算 MongoDb 中字段的不同值的数量
- json - 在 Azure 数据工厂中解析复杂的 JSON