2011-12-14 56 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