1

私はプログラミングの初心者です(数年前にDelphiで少し作業しました)が、アプリの素晴らしいアイデアがあるので、Windows Phone 7.5 Mango用のアプリケーションの構築を開始しました:Dアプリケーションでは、ユーザーは次のことができるはずです。リストからさまざまな場所を選択する(非常に大きなリスト、5,000以上のアイテム)-すべてのユーザーが常に最新のリストを取得できるようにするために、WebサイトにSQLを作成して、リストをXMLとして生成しました-これをアプリケーションにロードしますhttpwebrequest経由; 頻繁に更新されるなど、大きなリストを処理する場合のベストプラクティスがよくわかりません。

これはかなりうまくいくように見えるので、それはあなたの主な質問ではありません-私の本当の質問は、ユーザーがリスト全体をスクロールする代わりに場所を検索できるように、アプリケーションに検索機能を追加する方法です。

私のSQLは、ID、Country、State、Region、City(および検索関数用のいくつかの無関係なテーブル)で構築されています。

これにアプローチする最善の方法がわかりませんか?Webサイトでクエリを実行し、結果をXMLとして生成し、httpwebrequestを使用して結果を電話に取得する必要がありますか?それとも、リスト全体を検索するためのデバイスの検索機能である必要がありますか?もしそうなら、どうすればそれを行うことができますか?

ありがとうございました ;-)

4

2 に答える 2

0

まず、ワイヤレスネットワークを使用していないスマートフォンを介して5,000以上のアイテムを含むリストを取得するには時間がかかることをお知らせする必要があります。したがって、ユーザーがいくつかのアイテムにのみ関心がある場合、リスト全体をダウンロードするためにトラフィックの膨大な浪費が発生することになります。これは基本的に、大量の日付をダウンロードしているが、その0.01%しか使用していないことを意味します。これは、プログラムを作成する方法ではありません。

したがって、私によれば、ユーザーがWebサービスを呼び出し、その検索パラメーターを使用してhttp要求を行うことができるように、Webサービスを作成する必要があります。そして、基本的にはSQL検索クエリでパラメータを使用します。これはストアドプロシージャまたはコードで裸である可能性がありますが、サーバー/データベースがどのように構築および構造化されているかわからないため、基本的に何でも選択できます。

次に例を示します。

SELECT * FROM TABLE_NAME WHERE (ID=@ID) OR (Country=@Country) OR (State=@State) OR (Region=@Region) OR (City=@City)

このアプリケーションを実行したとしたら、2つのパラメーターがあります。1つはユーザー入力を表し、もう1つは検索テキストを表し、もう1つはserachパラメーターが何であるかを説明します。(ID、国、州、地域、または都市?)。

于 2012-06-06T13:28:43.190 に答える
0

TextBox.TextChangedのハンドル関数をいくつかのロジックに登録して、頻繁に発生するクエリをフィルタリングする必要があります(たとえば、名前Johnと入力すると、J、Jo、Joh、Johnの4つのリクエストが発生する可能性があります)。これは、開始を遅らせたSystem.Threading.Timerを使用し、ユーザーが新しい文字を入力したときに開始時間を変更することで実行できます(例が必要な場合は-ask)。次に、WCFサービスを使用してSQLデータベースと「通信」することをお勧めします。WCFサービスでは、任意のORM(エンティティフレームワークが最も単純です)を使用してデータベースにクエリを実行します。

于 2012-06-06T14:08:52.037 に答える