1

私は次のコードを持っています(ここでスタックオーバーフローにあります):

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

このコードは配列の文字列を検索するのに適しています...SQL列で文字列を検索する必要があります。

テーブル(「名前」)があり、「ジョン」を見つけたいとしましょう。どうすればよいですか?

  • 私はconnectionstringやメソッド全体を必要としません。それは私が知っていることですが、SQLテーブルで特定の文字列を検索するメソッドについて考えることはできません。

  • 検索のバージョンを見るのは素晴らしいでしょう:「Jh」そしてそこにあれば「Jhon」を見つけるでしょう...

4

2 に答える 2

2
SELECT NAME
FROM NAMES
WHERE NAME='Jhon'

これはあなたが探しているものですか?

その一部のみが一致する必要がある場合:

...
WHERE NAME LIKE 'Jh%'

お気に入り

于 2012-08-21T22:23:57.407 に答える
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 に答える