使用SQLite,我如何搜索包含'?'的字符?使用SQLite,我如何搜索包含'?
這工作找到布魯斯和棒球:
string stCmdString = "SELECT fstInfo FROM PadTable WHERE fstInfo LIKE '%bruce%' AND fstInfo LIKE '%baseball%'"
不知道如何找到布魯斯和棒球。
使用SQLite,我如何搜索包含'?'的字符?使用SQLite,我如何搜索包含'?
這工作找到布魯斯和棒球:
string stCmdString = "SELECT fstInfo FROM PadTable WHERE fstInfo LIKE '%bruce%' AND fstInfo LIKE '%baseball%'"
不知道如何找到布魯斯和棒球。
你逃避與其他撇號撇號:
string stCmdString = "SELECT fstInfo FROM PadTable WHERE fstInfo LIKE '%bruce''s%' AND fstInfo LIKE '%baseball%'"
我知道這可以通過使用兩個引號來完成......但是在存儲數據之前,要讀取數據庫中所有新條目(或搜索)的每個字符都有點麻煩。 在OLE DB中使用.Parameters可修復此問題。是否有與SQLite等價的? – ttom
參數功能允許使用的字有'字。
using (System.Data.SQLite.SQLiteCommand sqliteCmd = sqliteConnection.CreateCommand())
{
sqliteCmd.CommandText = "SELECT" + stFieldNames + "FROM " + stTableName + " WHERE " + stLikeFieldName + " LIKE '%' || @p0 || '%'";
sqliteCmd.Parameters.Add(new SQLiteParameter("@p0", liststLikeFieldValue[0]));
for (int iii = 1; iii < liststLikeFieldValue.Count; iii++)
{
sqliteCmd.CommandText += " AND " + stLikeFieldName + " LIKE '%' || @p" + iii.ToString() + " || '%'";
sqliteCmd.Parameters.Add(new SQLiteParameter("@p" + iii.ToString(), liststLikeFieldValue[iii]));
}
將它們加倍以逃避:'...其中fld ='bruce''s'' **但是**您應該使用參數化查詢,它將a)爲您做這件事並且b)保護您來自SQL注入。 –