1

我在編程方面有點新手(與德爾福多年後一直工作過),但已經開始爲Windows Phone 7.5 Mango構建應用程序,因爲我對應用程序有一個好主意: D 在應用程序中,用戶應該能夠從列表中選擇不同的位置(一個非常大的列表,5k +項目) - 確保所有用戶始終獲得最新列表,我在我的網站上創建了一個SQL以生成列表爲XML - 我通過httpwebrequest加載到應用程序;我不太清楚在處理大型列表時,最佳做法是什麼,它會經常更新等。Windows Phone應用程序的搜索功能

這不是你的主要問題,因爲這似乎工作很好 - 我真正的問題是,如何添加一個搜索功能到我的應用程序,所以用戶可以搜索一個位置,而不是通過滾動整個列表?

我的SQL與ID,國家,州,地區,城市(和一些搜索功能更多不相關的表)建立起來。

我不知道最好的方法是什麼?我應該在我的網站上進行查詢並將結果生成爲XML並使用httpwebrequest將結果發送到手機 - 或者它應該是設備上的搜索功能以搜索整個列表?如果是這樣,我該怎麼做?

謝謝;-)

回答

0

首先我要告訴你,獲取一個列表通過智能手機在5K +的項目,不使用無線網絡,將需要一段時間的。所以,根據我的說法,如果用戶只對幾個項目感興趣,那麼下載整個列表會有巨大的流量浪費。這基本上意味着你正在下載一堆日期,但只使用了它的0.01%,這不是你應該建立一個程序的方式。

因此,根據我你應該做一個web服務,以便用戶可以調用web服務並使用其搜索參數發出http請求。然後你基本上只是在SQL搜索查詢中使用這個參數,這可能是一個存儲過程,或者只是在代碼中,但我不知道你的服務器/數據庫是如何構建和構建的,所以你可以基本選擇。

下面是一個例子:

SELECT * FROM TABLE_NAME WHERE ([email protected]) OR ([email protected]) OR ([email protected]) OR ([email protected]) OR ([email protected]) 

如果我會做這個應用程序,我將不得不兩個參數。一個代表用戶輸入,換句話說就是搜索文本和一個解釋什麼是serach參數。 (身份證,國家,州,地區或城市?)。

0

你必須註冊TextBox.TextChanged的句柄函數,用一些邏輯來過濾頻繁發生的查詢(例如鍵入name約翰可能導致4個請求:J,Jo,Joh,John)。它可以通過使用帶有延遲啓動的System.Threading.Timer並在用戶輸入新字符(如果需要example - ask)時更改開始時間來完成。 然後我建議你使用WCF服務來與SQL數據庫「交談」。在WCF服務中,使用任何ORM(實體框架最簡單)來查詢數據庫。

相關問題