Ich baue eine Windows-Formular-Anwendung, wo ich will, wenn ich ein Formular wie Produkt öffnen, sollte es alle aufgeführten Produkt in der Datenbank verfügbar laden. Zusammen mit Bildern. und zeigt es in DataGridView. Nun ist meine Frage, was ist der beste Weg, um so viele Daten in einer Gridview zu laden?Windows Form DataGridView Schnell Laden
Antwort
Wenn Sie Daten in einer DataGridView
anzeigen möchten, und Sie vermuten, dass viele Daten vorhanden sind (möglicherweise so sehr, dass es möglicherweise problematisch ist, sie vollständig in den Speicher zu laden), sollten Sie ihre VirtualMode
-Funktionen verwenden. Siehe die MSDN-Artikel "Walkthrough: Implementing Virtual Mode in the Windows Forms DataGridView Control":
„Wenn Sie sehr große Mengen von tabellarischen Daten in einem Datagridview-Steuerelement angezeigt werden möchten, können Sie die Virtualmode-Eigenschaft auf true gesetzt und ausdrücklich die Kontrolle der Interaktion mit seinen Datenspeicher verwalten Dies. In dieser Situation können Sie die Leistung des Steuerelements optimieren. "
Grundsätzlich bedeutet virtuellen Modus, dass die DataGridView
Steuerung die CellValueNeeded
event erhöhen, wenn sie Daten benötigt. Sie abonnieren einen Handler für dieses Ereignis und holen die erforderlichen Daten "Just-in-Time". Dies ermöglicht es, nur einen Bruchteil des gesamten Datensatzes im Speicher zu behalten.
Es liegt an Ihnen, welche und wie viele Datensätze Sie im Speicher behalten. Einige mögliche Strategien:
Sie führen Paging durch, d. H. Sie laden einen Block zusammenhängender Zeilen aus der Datenbank. Dies erfordert eine bekannte Reihenfolge. Das heißt, Sie müssen eine ORDER BY
SQL-Klausel aus Ihrer aktuellen Sortierung DataGridView
ableiten können. (Schauen Sie sich "Using OFFSET and FETCH to limit the rows returned" an, um zu sehen, wie Paging auf SQL-Ebene implementiert werden kann.)
Sie holen einzelne Zeilen aus der Datenbank. Dies ist möglicherweise weniger effizient als Paging, funktioniert aber besser, wenn Sie keine ORDER BY
-Klausel ermitteln können, die den aktuellen Sortierkriterien von DataGridView
entspricht.
In beiden Fällen finden Sie in dem Artikel, den ich oben verlinkt habe, ein Tutorial zur Verwendung des virtuellen Modus.
- 1. Windows Form DataGridView Population von Entitätsmodell
- 2. Windows Form: Deaktivieren Sie Autoscrolling auf DataGridView
- 3. DataGridView-Spalten in C# sortieren? (Windows Form)
- 4. datagridview zeigt leere Zeilen in Windows Form
- 5. Windows Form: ändern dataGridView die erste Zelle Herkunft?
- 6. Windows Form Datagridview Checkbox Wert Immer wahr Wenn aktiviert/deaktiviert
- 7. javascript Form validaton, Nachricht schnell
- 8. Windows Forms - ErrorProvider + DataGridView
- 9. So laden Sie Musik schnell
- 10. schnell Text in Excel laden
- 11. Suspend Redraw von Windows Form
- 12. Windows Form Tabulator lädt langsam
- 13. Image in Windows Forms DataGridView
- 14. C# Windows Form DataGridView Cellformating Ereignis mit Datum Wert und Zeit
- 15. C# Windows Form nicht fokussiert
- 16. .NET Windows Form Ereignisse Sequenz
- 17. Konvertieren von Windows Form in Windows Metro Form
- 18. Zeichnen Form in Windows Form Anwendung
- 19. Windows Form Chat Tutorial
- 20. C# - Windows Form Design
- 21. C# Windows Form Databinding
- 22. von Windows Form Webformular
- 23. Windows Form "Loch"
- 24. Windows Form Fullscreen
- 25. Windows Form Vererbung
- 26. Windows Form, C#, Hintergrundbild
- 27. Scrollen, um Daten zu laden. Schnell. UITableView
- 28. Schnell laden UITableViewCell Bilder von der Festplatte
- 29. Laden Sie Daten vom Server schnell iOS
- 30. Picasso kann Bilder nicht schnell laden
Datenvirtualisierung. Sie können auch die Leistung des Steuerelements verbessern (siehe z. B. [this] (http://stackoverflow.com/q/4255148/1997232)). Aber wenn die Frage steht, ist es zu früh, um sie zu stellen. Hast du irgendwas probiert? Worüber bist du nicht glücklich? – Sinatr
die Leistung des Gitters. wenn ich so viele Daten lade, wird es (gui) sehr oft gehängt – Siraj