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 關注
- 183 瀏覽
添加回答
舉報