运行以下查询时出现上述错误,
String sql = "((NAME= '" + sReceipts[0] + "' ) OR (SECTION IN ('RECEIPT', 'PROJECT') AND NAME IS NULL))";
sReceipts[0]
值是'Tom''(带有 APOSTROPHE )给出错误
但是如果sReceipts [0] ='Ann'没有错误发生。
尝试用String.Format解决,但我做不到。 请问最好的方法是什么?
答案 0 :(得分:4)
您应该使用参数化查询,如下所示:
OracleCommand oraCommand = new OracleCommand("SELECT YourColumn FROM
YourTable WHERE ((NAME= :receiptName ) OR (SECTION IN ('RECEIPT', 'PROJECT') AND NAME IS NULL))", db);
oraCommand.Parameters.Add(new OracleParameter("recieptName", sReceipts[0]));
如果您使用的是Microsoft类,请参阅MSDN OracleCommand.Parameters Property,并使用OracleParameterCollection获取等效的Oracle参数集。
答案 1 :(得分:-2)