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-2025
 
zurück

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

VB.NET - Fortgeschrittene
Alternative: Row-Zuordnung über eindeutige Schlüsselspalte 
Autor: Manfred X
Datum: 13.04.12 21:54

Vielleicht hilft dieses Beispiel ein wenig weiter ....
Public Class frmDGVSync
 
    Dim dt1, dt2 As New DataTable
    Dim dv1, dv2 As New DataView
 
    Dim bs1 As New BindingSource
    Dim bs2 As New BindingSource
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As  _
      System.EventArgs) Handles MyBase.Load
        'eindeutige Schlüsselspalte
        dt1.Columns.Add("ID", GetType(Integer))
        dt1.Columns(0).AutoIncrement = True
        dt1.Columns(0).Unique = True
        dt1.Columns(0).ReadOnly = True
 
        dt1.Columns.Add("Col1", GetType(Double))
        dt1.Columns.Add("Col2", GetType(Double))
 
        'einige Datenzeilen  
        For i As Integer = 1 To 10 : dt1.Rows.Add(i, i, i) : Next i
 
        dt2 = dt1.Copy
 
        bs1.DataSource = dt1
        bs1.Sort = dt1.Columns(1).ColumnName 'Sortierspalte
        dv1 = New DataView(dt1)
 
        bs2.DataSource = dt2
        bs2.Sort = dt2.Columns(1).ColumnName
 
        With DataGridView1
            .DataSource = bs1
            .AllowUserToDeleteRows = False
            .AllowUserToAddRows = False
        End With
 
        DataGridView2.DataSource = bs2
        DataGridView2.ReadOnly = True
 
    End Sub
 
    Private Sub DataGridView1_CellEndEdit(ByVal sender As Object, _
        ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) _
        Handles DataGridView1.CellEndEdit
 
        'Verweis auf aktuelle Tabellenzeile 
        Dim row As DataRow = CType(bs1.Current, DataRowView).Row
        'der geänderte Wert in der Zeile
        Dim newvalue As Object = row(e.ColumnIndex)
        'Schlüsselwert der geänderten Zeile
        Dim id As Integer = CInt(row.Item("ID")) 
        'Zeilenindex mit Schlüsselwert in der zweiten Tabelle 
        Dim rowindex As Integer = bs2.Find("ID", id)
        'geänderten Wert in die zweite Tabelle schreiben 
        CType(bs2(rowindex), DataRowView).Row.Item _
        (dt1.Columns(e.ColumnIndex).ColumnName) = newvalue
    End Sub
 
    Private Sub DataGridView1_DataError(ByVal sender As Object, _
        ByVal e As System.Windows.Forms.DataGridViewDataErrorEventArgs) _
       Handles DataGridView1.DataError
 
        MsgBox("Unzulässige Eingabe:" & e.Exception.Message)
        e.Cancel = True
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Seltsames Verhalten synchronisierter DataGridViews2.368mquadrat13.04.12 14:59
Re: Seltsames Verhalten synchronisierter DataGridViews1.158Manfred X13.04.12 20:54
Alternative: Row-Zuordnung über eindeutige Schlüsselspalte1.430Manfred X13.04.12 21:54
Re: Seltsames Verhalten synchronisierter DataGridViews1.131mquadrat16.04.12 08:17
Re: Seltsames Verhalten synchronisierter DataGridViews1.389Manfred X16.04.12 18:25

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