2017-01-23 2 views
1

SQLiteを使用して、 'を含む文字を検索するにはどうすればよいですか?'SQLiteを使って、 'を含む文字を検索するには?

これはブルースや野球を見つけるために動作します:

string stCmdString = "SELECT fstInfo FROM PadTable WHERE fstInfo LIKE '%bruce%' AND fstInfo LIKE '%baseball%'" 

ブルースさんと野球見つける方法をわかりません。

+1

「fld = 'bruce''s'' **しかし**あなたはパラメータ化されたクエリを使用する必要があります。これはa)あなたのためにこれを行い、b)あなたを安全にしますSQLインジェクションから。 –

答えて

2

あなたは別のアポストロフィでアポストロフィをエスケープ:

string stCmdString = "SELECT fstInfo FROM PadTable WHERE fstInfo LIKE '%bruce''s%' AND fstInfo LIKE '%baseball%'" 
+0

私は2つの引用符を使ってこれを行うことができますが、これは。 OLE DBで.Parametersを使用すると、この問題が修正されます。 SQLiteに相当するものはありますか? – ttom

1

パラメータ機能は、言葉では「持っている言葉を使用することができます。

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])); 
    } 
関連する問題