• ベストアンサー

DataGridViewで表示に制限をつけたい。

VB2005、SQLServer2005環境です。 DataGridでDBのレコードを表示しています。 フォームのデザイナに、データソースに表示されている テーブルをドラッグしただけでなので、現在は以下のように なってます。 Private Sub TestForm_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Me.Load Me.testTableAdapter.Fill(Me.DataSet.test) End Sub レコードが少なければ問題ないのですが、10万や20万と増えて くると、これでは表示に時間がかかります。 (実際には数百程度しかデータは入らないのですが)。 DataGridViewに表示するレコードの数を200件程度にして、それ以上は スクロールさせた時に表示するような形式にしたいと思うのですが、 それを実現するための方法を教えていただけないでしょうか? できましたら、サンプルコードを交えて教えていただけると助かります。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ape5
  • ベストアンサー率57% (85/148)
回答No.3

DataGridViewのデータソースにDataViewを使ってはどうでしょうか。 DataViewはDataTableのDBで言うところのビューみたいなものです。 DataTableに主キーとかでフィルタをかけてDataViewを作成し、それをDataGridViewに連結するということです。 http://msdn2.microsoft.com/ja-jp/library/system.data.dataview(VS.80).aspx

その他の回答 (2)

  • unamana19
  • ベストアンサー率62% (56/89)
回答No.2

確かにDataGridViewで大量のデータを扱うにはレスポンスが悪くなります。 データ量が多いのであれば、仮想モード(VirtualMode=TRue)で対応可能です。 ただし、表示などの制御も自分自身で行わなければなりませんので、 コード量は増えることになります。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

一般的にはテーブルの何処かのフィールドをキーにしてデータを抽出します たとえば IDが20000番代のものだけとか苗字が山田の人だけとか TabaleAdapterのSelectCommandに対してパラメータがあるのが普通だと思いますよ select * from table where ID >=2000 and ID < 3000 といった具合に ・・・

関連するQ&A

専門家に質問してみよう