2014-02-12 60 views
0

的sql結果我正在使用select語句從sqlite中檢索某些數據。結果包含'char在選擇數據時導致錯誤。我怎麼能忽略它?如何檢索包含'char

下面是我的SQL語句:

string query = string.Format("select * from TableA where [Col]='{0}'",suraTName) 

Statement: select * from TableA where [Col]='An-Naazi'aat' 

如何忽略'字符,並有正確的結果呢?

謝謝!

+2

請不要像這樣做。使用參數化的SQL,它也會解決你的問題。 – Lloyd

回答

2

您應該使用參數化查詢這樣

string query = "select * from TableA where [Col][email protected]"; 
SQLiteCommand cmd = new SQLiteCommand(query, con); 
cmd.Parameters.AddWithValue("@colValue", suraTName); 

這樣的工作,以正確引用你的價值傳遞給傻到SQLite的供應商。此外,不存在Sql Injections

可能性。當然,這是可能的,如果你使用的是像從System.Data.SQLite的一個ADO.NET提供者,如果你使用的是其他系統來檢索數據,我只能建議翻一番在查詢單引號

suraTName = suraTName.Replace("'", "''"); 
string query = string.Format("select * from TableA where [Col]='{0}'",suraTName); 

但它是非常危險的選項

+0

謝謝,在sqlite中沒有參數(cmd.Parameters) – ARH

+0

Are you sure?你使用的是什麼版本或什麼提供者,因爲這裏http://system.data.sqlite.org/index.html/artifact/dad394fdf2af9b24似乎參數集合可用作爲由DbCommand派生的類。 – Steve

+0

哦,我沒有使用System.Data.Sqite(這是從哪裏來的)。我只使用SQLite。 – ARH