2010-08-12 49 views
0

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

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

GetDataCustPostcode运行:

SELECT * FROM CustomerTable WHERE (CustomerPostcode LIKE @CustPostcode) 
当我尝试

预期的结果返回:

searchTerm = "BT14"搜索的%BT14%一个postcode

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

custTable是空的,当我尝试:

searchTerm = "BT14 7D"搜索的%BT14%7D%一个postcode

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

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

然后返回预期结果。

任何人都可以提出这是为什么?这与字符串中的字符有关吗?

感谢

Clivest

+0

这很奇怪!当我今天早上尝试它时,它工作。我根本没有修改代码。也许重新启动帮助?无论如何,它现在都正常工作。谢谢 – Clivest 2010-08-13 09:37:16

回答

1

考虑使用单字符通配符,下划线,为中间串匹配,只有在串的两端百分比。

+0

感谢您的回复。我认为我必须在中间使用一个百分比,因为邮编可以是“BT147DT”或“BT14 7DT”。是对的吗?或者是否有另一个通配符会更合适 – Clivest 2010-08-13 09:32:39

+0

不幸的是,没有。我很高兴,根据你的评论,事情正在为你工作。如果您有兴趣了解有关支持的不同通配符的更多信息,请查看:http://manuals.sybase.com/onlinebooks/group-asarc/srg1100e/sqlref/@Generic__BookTextView/73386;pt=73946 – kbrimington 2010-08-13 13:19:42

0

%7D 在某些情况下是一个特殊字符......也许这一个呢?这个问题是否也发生在其他组合上?

+0

感谢您的回复。它也适用于“BT14 7E”,但不适用于“BT14 9E” – Clivest 2010-08-13 09:35:36