2016-08-10 32 views
-3

nレコードのリストがあり、レコードIDごとにデータベースから整数(partid)のリストをフェッチする必要があります。SQLサーバーへの複数のdb呼び出しを避ける

現在のところ、アプリケーションから、メインIDを渡してdbから各リストをフェッチする必要があります。

明らかに、これはアプリのパフォーマンス(vb.netを使用した.NET Winformsアプリ)に影響します。

複数の通話を避ける方法はありますか?

同様に、IDのリストを送信して、希望の結果を出力することはできますか?

  • 入力:RECORD1有するID 100

  • 出力:ID 100、partid 1、2、3

同一のnの行

Iどのように..何か助けてくださいわからない

+0

単語の代わりにサンプルデータとともに説明してください – TheGameiswar

+0

'xml'フィールドとしてメインクエリに' partid'を含めます。パフォーマンスが向上する場合もあれば、向上しない場合もありますが、リクエスト数を減らすことができます。 –

+0

私は驚いています。私はVBが一度にすべてのデータセットを受け入れ、すべての行に対してSQLをフェッチしないと信じています。 –

答えて

0

あなたの質問を共有すれば、私たちはあなたにフィードバックを与えることができます。あなたは

SELECT PartId FROM tblParts WHERE CategoryId = 100 

のようなクエリを持っている、しかし、あなたは、データベースを照会し、一度にすべての関連レコードを返すために

SELECT CategoryId, PartId FROM tblParts WHERE CategoryId in (100,101,102 etc) 

を使用することができると仮定。 (またはWHERE句を省略してテーブル内のすべてを返すこともできます)。

戻ったローカルのデータテーブルでは、.Select("CategoryId=101")というメソッドを使用して、データに対してローカルクエリを実行し、データを通常通り処理することができます。

関連する問題