データベースに合計70,000件のレコードがあります。現在、データグリッドビューにすべてのレコードを表示しています。でも時間がかかりすぎます。ここで、winformがロードされるときに最初の100レコードをロードしてから、バックグラウンドプロセスを使用してレコードを取得したいと思います。そしてそれをdatagridviewにバインドします。可能ですか?はいの場合、これをどのように達成しますか?
2 に答える
0
データテーブルでlinqを使用できるため、表示したい行のみを取得できます(ページングを使用)。例 :
DS.Tables[0].Select().Skip<DataRow>(pageItems * (PageNumber - 1)).Take<DataRow>(pageItems).CopyToDataTable();
この場合、pageItems は 100 で、PageNumber は現在選択されているページです。この例では、データセット DS があり、結果のコピーを新しいデータテーブルに取得しています。
于 2012-04-09T09:46:37.977 に答える
0
データグリッドにバインドされた 70000 行は、エンド ユーザーにとってあまり意味がありません。アプリケーション全体の速度が低下し、メモリ使用量が高くなる可能性があります。行がバックグラウンドで移入される場合でも、ユーザー エクスペリエンスが非常に悪くなる可能性があります。
フィルターを使用して、ユーザーが表示できる行数を制限することをお勧めします。別のオプションは、仮想モードを使用することです
于 2012-04-09T09:47:07.150 に答える