2011-12-14 15 views
0

は、私のような列に何か持っている:どのように文字列の任意の部分に一致する?

cmd.CommandText = "select value from contacts where name like @name"; 
    cmd.Parameters.AddWithValue("@name", "%" + name); 

@name場合はjohnこれです:

name   value 
John kennedy 1999 
Bill gates 8388383 
Obama  11110 

を私はそれを試してみましたjohnkennedy

取得しようとした場合、私は1999に一致するクエリを必要とします'0name'がkennedyの場合、 が返されます。1999

答えて

3

名の両側に%を置く:

cmd.Parameters.AddWithValue("@name", "%" + name + "%"); 
3

をあなたが試みることができる:

cmd.Parameters.AddWithValue("@name", "%" + name + "%"); 
2

をあなたの値の両端にワイルドカードが必要になります。

cmd.Parameters.AddWithValue("@name", "%" + name + "%"); 
0

それはですパラメータ値の場合と何か関係があるようですが、列値とパラメータ値の両方を上限または下限に設定してみてください大文字と小文字の区別がついているかどうか確認してください。

+0

デフォルトでは大文字と小文字を区別しません。実際のバグは、where句ではname変数で表される値で終わらなければならないことを示しています(そうでない場合は、両端に% –

関連する問題