データベース モデルを使用しており、.ExecuteStoreQuery
関数を使用してデータをクエリしようとしています。
私のSQL文は次のようになります
SELECT * FROM t WHERE f1 LIKE @pr1 AND f2 LIKE @pr2 AND f3 LIKE @pr3
ご覧のとおり、@ pr1,2,3の3つのパラメーターを使用しています
context.ExecuteStoreQuery(SQL_string,
new SqlParameter {
ParameterName = "pr1",
Value = filterVal1
},
new SqlParameter {
ParameterName = "pr2",
Value = filterVal2
},
new SqlParameter {
ParameterName = "pr3",
Value = filterVal3 == 0 ? filterVal3.ToString() : "%"
});
ご覧のとおり、条件に応じて、filterVal3 の実際の値またはワイルドカード % を使用したいので、最終的に SQL ステートメントが実行されると、他の 2 つのパラメーターに基づいてレコードが選択されます。
問題は、「%」が予期していないものに変換され、クエリが空のセットを返すことです。SQL_string 内で @pr3 を '%' に置き換えようとしたところ、実際に必要な結果が得られました。
では、SqlParameter を使用してどのように動作させることができますか?
私が明確だったことを願っています。