vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Re: Beispiel mit zwei Datentabellen 
Autor: Manfred X
Datum: 08.02.16 20:32

In diesem Beispiel wird eine Tabelle "dt" fortlaufend gefüllt.
In Zeitabständen von 5 Sekunden werden die letzten 200 Zeilen
aus "dt" in die zuvor gelöschte Display-Tabelle eingetragen
(Import) und im Grid angezeigt.
Public Class frmBackground
 
    Dim dt As New DataTable  'fortlaufende Tabelle
    Dim dt_display As DataTable
 
    'anzuzeigende Zahl der Zeilen
    Const RowsToDisplay As Integer = 200
 
    Dim dgv As New DataGridView With _
        {.Parent = Me, .Width = 400, .Height = 400}
 
    Dim createdata As New Threading.Thread(AddressOf CreateDataRows)
 
 
    Private Sub frmBackground_Load(sender As System.Object, _
                             e As System.EventArgs) Handles MyBase.Load
 
        'Spalten und Zeilen erstellen
        dt.Columns.Add("ID", GetType(Integer))
        For i As Integer = 1 To 10
            dt.Columns.Add("SP" & CStr(i))
        Next i
 
        'Tabellenschema übertragen
        dt_display = dt.Clone
 
        Me.Size = New Size(500, 500)
        Me.Show()
 
        'Prozess für schnelle Datenerzeugung
        createdata.Start()
 
    End Sub
 
 
    Private Sub CreateDataRows()
 
        Dim id As Integer
        Dim lasttime As DateTime
        Do
            id += 1
 
            'neue Zeile mit Daten füllen 
            Dim row As DataRow = dt.NewRow
            row(0) = id
            For i As Integer = 1 To 10
                row(i) = i.ToString & ": " & id.ToString
            Next i
            dt.Rows.Add(row)
 
            If Date.Now.Ticks - lasttime.Ticks > _
                5 * TimeSpan.TicksPerSecond Then
 
                'In Intervallen die aktuellen Daten anzeigen
                Me.Invoke(New MethodInvoker(AddressOf Displaydata))
                lasttime = Date.Now
            End If
        Loop While id < 10000000
    End Sub
 
 
    Private Sub Displaydata()
        'Datenbindung unterbrechen
        dgv.DataSource = Nothing
        'Display-Table im Hintergrund füllen
        Dim fill As New Threading.Thread(AddressOf FillDisplayTable)
        fill.Start()
    End Sub
 
 
    Private Sub FillDisplayTable()
 
        Dim lastindex As Integer = dt.Rows.Count - 1
        Dim startindex As Integer = _
            Math.Max(lastindex - RowsToDisplay, 0)
 
        dt_display.Clear()
 
        For i As Integer = startindex To lastindex
            dt_display.ImportRow(dt.Rows(i))
        Next i
 
        'Datenbindung herstellen
        Me.Invoke(New MethodInvoker(AddressOf ShowData))
    End Sub
 
 
    Private Sub ShowData()
        dgv.DataSource = dt_display
        dgv.FirstDisplayedScrollingRowIndex = _
          dt_display.Rows.Count - 1
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Listview Aktualisierungszeit und Backgroundworker2.399FEF08.02.16 11:06
Re: Listview Aktualisierungszeit und Backgroundworker1.751Manfred X08.02.16 12:20
Re: Listview Aktualisierungszeit und Backgroundworker1.815FEF08.02.16 13:45
Re: Listview Aktualisierungszeit und Backgroundworker1.814Manfred X08.02.16 14:00
Beispiel mit zwei Datentabellen1.728Manfred X08.02.16 15:35
Re: Beispiel mit zwei Datentabellen1.716FEF08.02.16 18:15
Re: Beispiel mit zwei Datentabellen1.779Manfred X08.02.16 20:32
Re: Beispiel mit zwei Datentabellen1.774FEF09.02.16 10:33
Re: Beispiel mit zwei Datentabellen1.758Manfred X09.02.16 10:53
Re: Beispiel mit zwei Datentabellen1.689FEF09.02.16 11:02
Beispiel mit einer Datentabelle1.943Manfred X09.02.16 11:10
Re: Listview Aktualisierungszeit und Backgroundworker1.737FEF10.02.16 18:24
Re: Listview Aktualisierungszeit und Backgroundworker1.706Manfred X11.02.16 06:52

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-2024 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