1

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

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

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

假设我有表(“名称”),我想找到“Jhon”..我该怎么做?

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

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

4

2 回答 2

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+'%'包含
  • 用于like @value+'%'开头
  • 用于like '%'+@value结束
于 2012-08-21T22:40:51.127 回答
2
SELECT NAME
FROM NAMES
WHERE NAME='Jhon'

这是你要找的吗?

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

...
WHERE NAME LIKE 'Jh%'

喜欢

于 2012-08-21T22:23:57.407 回答