搜索ASP.NET SQL数据集以获取邮政编码

时间:2010-08-12 13:02:26

标签: sql asp.net dataset sql-like

我在ASP.NET中做一个项目,一次使用数据集在SQL数据库中搜索邮政编码:

string postcode = "%" + searchTerm.Trim().Replace(' ', '%') + "%";
SearchDataSet.SearchCustomerTableDataTable custTable = custAdapter.GetDataCustPostcode(postcode);

GetDataCustPostcode运行:

SELECT * FROM CustomerTable WHERE (CustomerPostcode LIKE @CustPostcode)

我尝试时会返回预期的结果:

searchTerm = "BT14"搜索postcode%BT14%

searchTerm = "BT14 7"搜索postcode%BT14%7%

我尝试时

custTable为空:

searchTerm = "BT14 7D"搜索postcode%BT14%7D%

如果我尝试直接编写SQL查询,即输入:

SELECT * FROM CustomerTable WHERE (CustomerPostcode LIKE '%BT14%7D%')

然后返回预期的结果。

任何人都可以告诉为什么会这样吗?它与字符串中的字符有关吗?

由于

Clivest

2 个答案:

答案 0 :(得分:1)

考虑使用单字符通配符(下划线)进行中间字符串匹配,并仅使用字符串末尾的百分比。

答案 1 :(得分:0)

%7D 在某些情况下是一个特殊的角色......也许这个也是?其他组合也会出现问题吗?