DataGridView & TableAdapter erforderlich aber zu langsam

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    DataGridView & TableAdapter erforderlich aber zu langsam

    Guten Abend zusammen,

    dies ist mein erster Beitrag hier, ich bin aber bereits monatelang stiller Leser und bereichere mich liebend gerne an euren Hilfestellungen.

    Ich habe als Schulprojekt die Software für unsere Dorfbibliothek geschrieben. Diese ist auch seit 5 Jahren im Produktiveinsatz und läuft relativ problemlos.
    Als Datenbank verwende ich eine SQL Compact Server DB, welche lokal abgespeichert wird.
    Die Mediendatenbank (also jene mit den Büchern) ist eigentlich sehr überschaubar (ca. 5000 Zeilen, ca. 15 Spalten, Gesamtgröße im einstelligen MB bereich.)

    Es gibt eine Form in welcher alle Bücher gesammelt in einer DataGridview angezeigt und sortiert werden. Vom Aufrufen dieser Form bis zum fertigen laden vergehen ca. 20 Sekunden. In der Zwischenzeit reagiert das Programm nicht.
    Nun sind wir gerade dabei, ein Systemupgrade durchzuführen der 8 Jahre alte Industrie-PC wird durch ein aktuelles Modell mit i7 Prozessor, SSD und 8GB Ram ersetzt.
    Die oben angesprochene Ladezeit hat sich damit auf ca. 4 Sekunden verringert. Das ist eine erhebliche Verbesserung. Allerdings kann ich mir nicht vorstellen, das das Laden und Anzeigen einer wenige MB großen Datei so lange dauert.

    Ich bitte euch jeden Vorschlag vorzubringen, mit welchen ich die Performance weiter verbessern kann.
    Da die Bücherei von Damen betreut wird, welche nur überschaubare IT-Kenntnisse haben, komme ich um die DataGridView nicht herum, eben weil es sop "praktisch" ist, dass alles wie Excel aussieht und auch direkt in der Tabelle bearbeitet werden kann. ;)

    Aktuell verwende ich folgenden Code:

    VB.NET-Quellcode

    1. Private Sub Medienübersicht_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. Me.Refresh()
    3. 'TODO: Diese Codezeile lädt Daten in die Tabelle "BüchereiDataSet.Medien". Sie können sie bei Bedarf verschieben oder entfernen.
    4. Me.MedienTableAdapter.ClearBeforeFill = True
    5. Me.MedienTableAdapter.Fill(Me.BüchereiDataSet.Medien)
    6. Me.Refresh()
    7. Me.MedienBindingSource.Sort = "ID"
    8. Me.MedienDataGridView.Columns(0).Frozen = True
    9. Me.MedienDataGridView.AutoResizeColumns()
    10. Label1.Text = MedienDataGridView.RowCount
    11. End Sub


    Danke für eure Hilfe!

    Markus