- ベストアンサー
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件程度にして、それ以上は スクロールさせた時に表示するような形式にしたいと思うのですが、 それを実現するための方法を教えていただけないでしょうか? できましたら、サンプルコードを交えて教えていただけると助かります。 宜しくお願いします。
- みんなの回答 (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)
確かにDataGridViewで大量のデータを扱うにはレスポンスが悪くなります。 データ量が多いのであれば、仮想モード(VirtualMode=TRue)で対応可能です。 ただし、表示などの制御も自分自身で行わなければなりませんので、 コード量は増えることになります。
- redfox63
- ベストアンサー率71% (1325/1856)
一般的にはテーブルの何処かのフィールドをキーにしてデータを抽出します たとえば IDが20000番代のものだけとか苗字が山田の人だけとか TabaleAdapterのSelectCommandに対してパラメータがあるのが普通だと思いますよ select * from table where ID >=2000 and ID < 3000 といった具合に ・・・