2010-08-12 50 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