vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 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
Datagridview aktualisieren 
Autor: Theo_kkv
Datum: 13.09.24 23:02

Hallo,
ich lasse in einem Datagridview Parameter von Dateien (Dateigrösse, letzter Zugriff, erstellt am usw.) darstellen. Das Datatable wird hier erstellt
Public Shared Function bu_tm_columns(ByVal tm_table As DataTable) As DataTable
 
    With tm_table
            .TableName = "Backup_Tabelle"
            .Columns.Add(New DataColumn("erstellt am", Type.GetType( _
              "System.DateTime")))
            .Columns.Add(New DataColumn("Größe (kByte)", Type.GetType( _
            "System.String")))
            .Columns.Add(New DataColumn("letzter Zugriff", Type.GetType( _
            "System.DateTime")))
            .Columns.Add(New DataColumn("letzte Änderung", Type.GetType( _
            "System.DateTime")))
            .Columns.Add(New DataColumn("Dateiname", Type.GetType( _
            "System.String")))
    End With
 
    Return tm_table
End Function
Die Dateiinformationen kommen mit LINQ hier
Public Shared Function bu_linq(ByVal tm_dir As DirectoryInfo) As IEnumerable(Of _
  Class_TM)
    Return From file In tm_dir.GetFiles("*._bak") Select New Class_TM With
                                                 {.bu_create = _
                                                   file.CreationTime,
                                                  .bu_groesse = file.Length,
                                                  .bu_lastaccess = _
                                                    file.LastAccessTime,
                                                  .bu_lastmodified = _
                                                  file.LastWriteTime,
                                                  .bu_filename = file.FullName}
 
End Function
Hier kommen die Werte aus LINQ in eine Datatable
Public Shared Function bu_tm_rows(ByVal bu_files As IEnumerable(Of Class_TM), _
  ByVal tm_table As DataTable, ByVal tm_settings As Class_Settings) As DataTable
 
    For Each zeile As Class_TM In bu_files
        Dim dr As DataRow = tm_table.NewRow
        dr("erstellt am") = zeile.bu_create.ToShortDateString
        dr("Größe (kByte)") = Math.Round(zeile.bu_groesse / 1024, 2).ToString
        dr("letzter Zugriff") = zeile.bu_lastaccess.ToLongTimeString
        dr("letzte Änderung") = zeile.bu_lastmodified.ToLongTimeString
        dr("Dateiname") = zeile.bu_filename
 
        tm_table.Rows.Add(dr)
    Next
    Return tm_table
End Function
Schlussendlich wird das Datatable als Datasource an das Datagridview gebunden
Private Sub daten_in_dgv()
    With DataGridView1
        .DataSource = tm_table
        .Columns("Dateiname").Visible = False
    End With
End Sub
Das zum Vorspiel.
Nun lösche ich eine Datei und lasse über einen Filesystemwatcher das Ereignis überwachen. Danach lasse ich die bereits vorhandenen Zeilen löschen
tm_table.Rows.Clear()
und hoffte, mit "bu_linq" und "bu_tm_rows" die Daten neu lesen, in die Zeilen des Datatable zu bringen und erneut an das Datagridview zu binden.
Leider klappt das nicht. Es liegt sicher an der Datenbindung. Es erscheint eine
"System.Indexoutofrangeexception: Der Index 2 hat keinen Wert. bei System.Windows.Forms.CurrencyManager.get_items(Int32index)
bei System.Windows.Forms.DatagridviewDataConnection.GetError(int32 rowindex)

Hat jemand einen Vorschlag, wie ich die Aktualisierung des Datagridview erreichen kann?

Vielen Dank für Eure Hilfe.

Grüße Tom
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Datagridview aktualisieren271Theo_kkv13.09.24 23:02
Re: Datagridview aktualisieren51Manfred X15.09.24 06:19
Re: Datagridview aktualisieren46Theo_kkv15.09.24 14:17
Re: Datagridview aktualisieren52Manfred X15.09.24 19:40

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