在SQL列中查找字符串

时间:2012-08-21 22:22:10

标签: c# asp.net sql

我有下一个代码(在堆栈溢出处找到):

 string [] arr = {"One","Two","Three"};
   var target = "One";
   var results = Array.FindAll(arr, s => s.Equals(target));

此代码适用于数组上的搜索字符串...我需要在sql列中找到字符串。

假设我有桌子(“名字”),我想找到“Jhon”......我怎么能这样做?

  • 我不需要连接字符串或整个方法,我知道这样做,但我无法考虑在sql表中搜索特定字符串的方法。

  • 很高兴看到搜索版本:“Jh”,它会找到“Jhon”,如果有...

2 个答案:

答案 0 :(得分:2)

SELECT NAME
FROM NAMES
WHERE NAME='Jhon'

这是你要找的吗?

如果只有一部分需要匹配:

...
WHERE NAME LIKE 'Jh%'

LIKE

答案 1 :(得分:2)

如果目标是用户提供的话,那么要避免sql注入

string connectionString= ...
string target="jh";

using (var conn=new SqlConnection(connectionString)) {
conn.Open();
  using (var cmd=conn.CreateCommand()) {
    cmd.CommandText="select Name from Names where Name like '%'+@value+'%'";
    cmd.Parameters.AddWithValue("@value",target);

    using (var reader=cmd.ExecuteReader()) {
        while (reader.Read()) { 
            Console.WriteLine(reader[0]);
        }
    }

  }
}
  • 使用like '%'+@value+'%' for contains
  • 使用like @value+'%'作为
  • 的开头
  • 使用like '%'+@value结尾