sql - 无法在查询中从 TextBox 进行部分匹配

标签 sql ado.net

我有一个包含像“Tom Hardy”这样的数据的列,我添加了一个新的查询来像这样在这个列中搜索:

SELECT  Number, Name, Business, [Tax File No], Phone
FROM            Archive
WHERE        (Name = @Name)

当我输入全名(如“Tom Hardy”)时它会起作用,但我想通过搜索“Tom”或“Hardy”来查找结果。

我也试过:

SELECT  Number, Name, Business, [Tax File No], Phone
FROM            Archive
WHERE        (Name IN (@Name))

都不行。

使用 Visual Studio 2010,并连接到 C# 和 SQL 数据库。

请帮忙,谢谢!

最佳答案

您需要为您的参数添加通配符

WHERE Name LIKE '%' + @Name + '%'

所以

SELECT  Number, Name, Business, [Tax File No], Phone
FROM            Ahrcive
WHERE        (Name COLLATE UTF8_GENERAL_CI like '%' + @Name + '%')

I don't think you can do this using the 'in' keyword .

关于sql - 无法在查询中从 TextBox 进行部分匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13583880/

相关文章:

c# - 在插入期间捕获 c# 中的 sql 唯一约束冲突的最佳方法

entity-framework - Entity Framework 6 + SQLite

mysql - 如何将格式化的 sql getdate() 插入到表中

C#:使用 PrimaryKey 从 DataTable 中检索值

php - 算出上周的小时数

sql - 主从复制的可靠性如何?

sql - 如何在 WHERE 子句中引用子查询

sql - 在 SQL 中合并 2 个结果集?

PHP/MySQL 将相同的数据插入到两个表中

c# - 将DataTable中的数据插入到数据库表中