0

「%」修飾子の使用を含む基本的なクエリを C# で記述しようとしています。

これが私のクエリです:

SELECT userName 
FROM tblUserInformation 
WHERE userName LIKE %@userNameQuery%

それを実行すると、SQL例外が発生します

@userNameQuery の近くに構文エラーがあります。

以前に SQL クエリと C# sql クエリ文字列で同様の違いに遭遇しましたが、これを解決する方法がわかりません。私が試してみました:

SELECT userID 
FROM tblUserInformation 
WHERE userName LIKE '%'@userNameQuery'%'

以下のものは例外をスローしませんが、結果を返しません。データベースに対して同じクエリを直接実行でき、多くの結果が返されるためです。

SELECT userName 
FROM tblUserInformation 
WHERE userName LIKE '%@userNameQuery%'

私はこれを正しくやっていますか?

また、@userNameQuerySqlParameterで適切に入力され、正しいデータ型などです。上記と2番目の両方を試してみましたが(結果が返されません)、クエリ文字列に構文エラーがないことを確認しています(余分なセミコロンまたは欠落 ") .

お時間をいただきありがとうございます!

4

3 に答える 3

5

%クエリ自体ではなく、パラメーターの値を渡す必要があります。

SELECT userName from tblUserInformation WHERE userName LIKE @userNameQuery

どこ@userNameQueryのようになります%my query%

于 2012-08-10T19:00:24.980 に答える
3

してみてください:

like '%' + @userNameQuery + '%'
于 2012-08-10T19:01:06.163 に答える
1

次のように使用することをお勧めします。

  1. queryあなたのように書くSELECT userName from tblUserInformation WHERE userName LIKE @userNameQuery
  2. stringパラメータとしてバインドする@userNameQuery必要があることを確認してください%。つまり、次のように宣言します。

    var userName = @"%name%";

于 2012-08-10T19:00:53.460 に答える