2011-12-14 41 views
0

我有一個列是這樣的:如何匹配字符串的任何部分?

name   value 
John kennedy 1999 
Bill gates 8388383 
Obama  11110 

我需要匹配1999,一個查詢,如果我嘗試讓johnkennedy

我試了一下:

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

如果@namejohn這個如果'@name'爲kennedy,則返回0 colums 這會返回1999

回答

3

%上名字的兩面:

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

你可以嘗試:

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

你需要在你的價值的兩端通配符:

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

會似乎它可能與參數值的情況有關,請嘗試將列值和參數值都設置爲上限或下限情況和在你的SQL,看看是否有幫助

+0

默認情況下是不區分大小寫的比較。這裏真正的bug是,where子句聲明名稱必須以名稱變量表示的值結尾(否則應該在兩端都有% – 2011-12-14 19:50:48