1 回答
TA贡献1796条经验 获得超4个赞
查询时,您需要参数化您的查询,而不是将它们嵌入为字符串。OleDB 命令执行过程将为您处理数据类型。但是请注意,针对基于 .DBF 的文件的 OleDb 参数使用“?” 作为参数的占位符,需要为每个需要的参数添加到命令中...
command.CommandText = string.Format(
@"SELECT
PH.*
FROM
PAYHIST PH
WHERE
PH.EMPLOYEE = ?
AND PH.PAY_DATE >= ? ";
command.Parameters.AddWithValue( "parmForEmployeeID", employee.WorksNumber );
command.Parameters.AddWithValue( "parmForDateField", new date(2018,1,1) );
如果在两者之间做,你只有额外的“?” 占位符
... WHERE
PH.EMPLOYEE = ?
AND PH.PAY_DATE BETWEEN ? AND ? ";
command.Parameters.AddWithValue( "parmForEmployeeID", employee.WorksNumber );
command.Parameters.AddWithValue( "parmFromDate", new date(2018,1,1) );
command.Parameters.AddWithValue( "parmToDate", new date(2018,12,31) );
有很多关于参数化查询的例子......尤其是基于 Web 来防止 SQL 注入。- 并仔细阅读。
- 1 回答
- 0 关注
- 152 浏览
添加回答
举报