c# - 在 SQL 列中查找字符串

标签 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”...

最佳答案

如果目标是用户提供的,那么可以避免 sql 注入(inject)

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 作为结尾

关于c# - 在 SQL 列中查找字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12063919/

相关文章:

asp.net - Windows 身份验证多次请求

c# - 如何在网络表单的服务器端检测回发

MySQL 触发器语法错误 #1064

sql - 查询以获取总行数和不同行数之间的差异

c# - 工厂模式很多参数需要提示

c# - 从 .Net 解决方案资源管理器拖放时如何以编程方式获取文件名?

c# - 重构和模拟以支持单元测试

javascript - AJAX 上传完成后重新加载页面

asp.net - 了解ASP.Net实例和线程

mysql - 如何通过sql显示投票结果