vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Hohe CPU-Auslastung 
Autor: Code_mancer
Datum: 30.03.11 08:17

Schade, habe da leider sauber ins Klo gegriffen Das ausschalten der Updatelogik kenne ich von einem nicht-Microsoft DataGrid - leider waren die Leute bei dem Framework-Grid scheinbar noch nicht so schlau.

Aber wenn du sagst, dass deine einzige Funktion ist, Daten von der Datenbank zu laden, dann könnte für dich eventuell ein DataBinding interessant sein. Je nachdem, wie du es machst, hast du mehrere Möglichkeiten, aber der Grundtenor ist der selbe.

Ich nehme im folgenden mal an, dass du eine DataTable anstelle vom Grid befüllst. Solltest du ein DataSet haben (also die Schnittstelle von VS benutzen) dann kannst du auch damit arbeiten. Der BindingSource ist das relativ egal - Hauptsache sie kann mit dem Binding was anfangen

    Private objDataTable As New Data.DataTable
    Private objBindingSource As New BindingSource
Nun befüllst du die DataTable nach Lust und Laune. Wenn du fertig bist, dann kommt das eigentliche Binding:

    objBindingSource.DataSource = objDataTable
    grdTest.DataSource = objBindingSource
Willst du jetzt Updaten, kannst du entweder kurz die Bindingsource "abkoppeln", oder eine neue DataTable machen, die die alte ersetzt. In beiden fällen musst du das Binding erneuern. Wurstelst du direkt in der bestehenden DataTable rum, dann hast du den gleichen Effekt, als wenn du das Grid direkt befüllst.

    Public Sub MitNeuerDataTable()
        'Die Struktur der "alten" DataTable übernehmen
        Dim objNewDt As Data.DataTable = objDataTable.Clone
 
        'Die neue DataTable befüllen
        [...]
 
        'Das Binding erneuern, da die Änderungen sonst nicht "ankommen"
        objDataTable = objNewDt
        objBindingSource.DataSource = objDataTable
    End Sub
 
    Public Sub MitAbkoppeln()
        'DataTable "abkoppeln" (das Grid wird kurzzeitig geleert)
        objBindingSource.DataSource = Nothing
 
        'Änderungen an der DataTable vornehmen
        [...]
 
        'Binding wieder her stellen
        objBindingSource.DataSource = objDataTable
    End Sub
Sinn ist es hierbei, die Aufrufe des DataGridView.Redraw Event zu minimieren. Aber das hilft dir leider nicht viel bei Formatierungen (soweit ich das von dir verstanden habe)

--------------------

Ich habe keine besondere Begabung, sondern bin nur leidenschaftlich neugierig.
- Albert Einstein

Beitrag wurde zuletzt am 30.03.11 um 08:18:37 editiert.

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Hohe CPU-Auslastung999martol29.03.11 12:39
Re: Hohe CPU-Auslastung595Code_mancer29.03.11 16:47
Re: Hohe CPU-Auslastung625martol29.03.11 18:02
Re: Hohe CPU-Auslastung611Code_mancer30.03.11 08:17
Re: Hohe CPU-Auslastung645martol30.03.11 08:54

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel