2017-09-27 52 views
0

當運行下面的查詢得到上面的錯誤,ORA-00907:缺少右括號在C#中的SQL語句

String sql = "((NAME= '" + sReceipts[0] + "') OR (SECTION IN ('RECEIPT', 'PROJECT') AND NAME IS NULL))"; 

sReceipts[0]值是「湯姆」(與APOSTROPHE)給出了錯誤

但是,如果sReceipts [0] ='安'沒有錯誤發生。

試圖解決與String.Format,但我不能。 請問什麼是最好的方法?

回答

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])); 

MSDN OracleCommand.Parameters Property如果您正在使用等效的Oracle參數採集微軟的類和OracleParameterCollection