【问题标题】:SQL Server Search in column where contains part of a text [closed]SQL Server在包含部分文本的列中搜索[关闭]
【发布时间】:2017-07-09 20:02:54
【问题描述】:

所以,我正在使用 C# 在 WindowsForm 中制作一个程序,并且我有一个搜索框,用户可以在其中搜索客户端列表。 我想要做的是:当用户点击“搜索”时,从客户表中选择所有包含用户所写文本的行,在名称列中。喜欢:

我在 clients 表中注册了 Alan 和 Mark,用户在搜索框中写了“a”,它必须带上 Alan 和 Mark,因为他们的名字中有字母“a”。

【问题讨论】:

  • 嗯,这似乎是一个不错的计划。您是否开始编写代码来完成它?请记住,您来这里不是要请人为您编写代码。发帖前请阅读help center
  • 对不起,我没有把代码放在这里,因为我想要的实际上是 SQL 代码,而不是 c#/winform 代码。
  • 我试过SELECT * FROM table WHERE column LIKE text 但文字必须是“Alan”或“Mark”,而不仅仅是一个字母或名称的一部分。我也试过CONTAINS,但效果一样:/
  • 检查 Sql-Server 中的docs about the LIKE 语句。你会注意到它支持通配符

标签: c# sql-server winforms search


【解决方案1】:
string userInput = searchTextBox.Text; 
string query = "select* from client where name like" + '%' + userInput + '%';
  • 现在您可以使用该查询。

[编辑安全]

cmd.CommandText = "select* from client where name like @Name;";
cmd.Parameters.AddWithValue("@Name", "%" + userInput + "%");

【讨论】:

  • 你听说过 SQL 注入攻击吗?
  • 您正在为社区提供答案,而不仅仅是 OP。如果您建议的解决方案存在如此大的安全问题,您应该在回答中指出。
【解决方案2】:

一个简单的赞就能解决你的问题:

Select * from yourtable where [name] like '%a%'

【讨论】:

  • 我可以在里面使用参数吗?我正在尝试,但它没有给我带来任何回报。当我尝试使用'%a%' 时,它工作正常。
  • 是的 @AlanFelipe 和 google 将重新运行大量示例伙伴!祝你好运!!
  • 您听说过 SQL 注入攻击吗?
猜你喜欢
  • 2016-04-15
  • 1970-01-01
  • 2016-09-18
  • 2013-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多