2009-03-23 6 views

Répondre

3

Il n'y a pas de limitation explicite dans un DataGrid.

Cependant, il est contraint à la fois par c'est des structures de données internes qui ont tendance à compter les lignes en termes de nombre entier. Cela signifie que la limite dure est Integer.MAXVALUE

Sur un système 32 bits bien, vous frapperez des problèmes à long avant de frapper les lignes Integer.MAXVALUE. Chaque élément ajouté au DataGrid a une certaine quantité de surcharge. Si chaque élément n'a que 4 octets de surcharge, vous atteindrez un maximum à Integer.MaxValue/4. C'est vraiment une vue simpliste du problème, car il ne prend pas en compte les autres contrôles, les ressources internes de WinForms, etc ...

Combien d'enregistrements envisagez-vous d'ajouter?

1

Je ne suis pas au courant d'aucune limite stricte en dehors des limites physiques de la mémoire disponible ou Integer.MAXVALUE peut-être. Je ne serais pas trop surpris s'il y en a, cependant.

Quoi de plus important est qu'un DataGrid est un visuel construction montré utilisateurs réels. Les utilisateurs n'apprécieront pas beaucoup une grille avec 1000 éléments, et encore moins 100.000+ (que j'ai déjà vu).

Le point est que, plutôt que de se préoccuper des dossiers maximum que vous pouvez farcir là-dedans, vous êtes mieux mettre en œuvre paging ou un meilleur mécanisme de recherche.

0

La propriété Count de la collection DataGridView.Rows est un Integer, de sorte que la plage normale pour les entiers signés sur 4 octets doit appliquer comme une limite effective: 0 à 2147483647

Quant à ce que la collection Rows peut réellement tenir , Je ne suis pas sûr ... cela dépend de ce que votre application est en train de faire.

0

En dehors de Integer.MAXVALUE, je suppose que cela dépend de la mémoire disponible pour l'application & déjà utilisé.

Pourquoi pensez-vous de remplir la grille avec toutes les lignes à la fois?
Cela n'a aucun sens de montrer aux utilisateurs tous les enregistrements.

Questions connexes