LIKE %%
コマンドを含むクエリのC#でパラメータクエリのSQLを作成しようとしています。
これが私が達成しようとしていることです(データベースはFirebirdであることに注意してください)
var SQL = string.format("SELECT * FROM {0} WHERE {1} LIKE '%?%'", TABLE, NAME);
cmd.Parameters.AddWithValue(NAME, "JOHN");
これで、パラメーターを機能させるためにすべての順列を試しました。試しました。
%
文字をパラメータに追加します。
cmd.Parameters.AddWithValue(NAME, "%" + "JOHN" + "%");
または
cmd.Parameters.AddWithValue(NAME, "'%" + "JOHN" + "%'");
これを機能させることができないようです。LIKEクエリのパラメータを使用するにはどうすればよいですか。
提案は大歓迎です!
クエリの文字列リテラル内にパラメータを含めることはできません。値全体をパラメーターにし、ワイルドカードを文字列に追加します。
var SQL = string.format("SELECT * FROM {0} WHERE {1} LIKE ?", TABLE, NAME);
Cmd.Parameters.AddWithValue(NAME, "%" + "JOHN" + "%");
var SQL = string.Format("SELECT * FROM {0} WHERE {1} LIKE '%' + ? + '%'", TABLE, NAME);
Cmd.CommandText = SQL;
Cmd.Parameters.Add("?", SqlDbType.VarChar, 50).Value = "JOHN";