vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 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 - Ein- und Umsteiger
Bindingsource: Aktualisierung der Bindung für die Find-Methode 
Autor: Manfred X
Datum: 11.01.14 14:32

Hallo!

Ich habe eine Frage zum Verhalten der "Bindingsource"
bzw. der Implementierung der "IListSource" bei der Datatable.
(VB 2010, FW 4)

Public Class frmDatasourceProblemDemo
 
    'Datatable, Bindingsource, Datagridview erstellen 
    'und zusammenbinden
 
    Dim dt As New DataTable
    Dim bs As New BindingSource With {.DataSource = dt}
    Dim dgv As New DataGridView With {.Parent = Me, .DataSource = bs}
 
    Dim colname As String = "SP1"
 
 
    Private Sub frmDatasourceProblemDemo_Load(sender As System.Object, _
                        e As System.EventArgs) Handles MyBase.Load
 
        'Testdaten erstellen
        dt.Columns.Add(colname, GetType(Integer))
        For i As Integer = 1 To 9
            dt.Rows.Add(i)
        Next i
 
        'Liste unter Beachtung des geänderten Tabellenschemas neu lesen 
        'Datagridview zeigt die Daten korrekt an
        bs.ResetBindings(True)
 
        '9 Datensätze sind jetzt in der gebundenen Liste vorhanden 
        Dim c As Integer = bs.Count
 
        'Der Wert in Zeile 4 (=5) kann per Bindingsource gelesen werden
        Dim vl As Integer = CType(CType(bs(4), DataRowView)(colname), Integer)
 
        'PROBLEM / FRAGE: Wieso ??
        'Argumentexception: Die Datamember-Eigenschaft (Spaltenname) kann
        'in der Datasource nicht gefunden werden
        Dim ind As Integer = bs.Find(colname, 5)
 
    End Sub
End Class
Die "Find"-Methode funktioniert, wenn man im obigen Code den Aufruf von
ResetBindings ersetzt durch die Anweisungen:
bs.Datasource = nothing : bs.Datasource = dt
MSDN:
[I]ResetBindings wird automatisch immer dann aufgerufen, wenn ein
anderer Member wesentliche Änderungen an der Datenbindung vornimmt,
z. B. die DataSource-Eigenschaft oder die DataMember-Eigenschaft festlegt.
Der Programmierer kann diese Methode jedoch auch explizit aufrufen. [/I]

Auch die Nutzung der "LoadData"-Eigenschaften (Begin..,Load..,End..)
der Datatable bei Zuweisung der Daten ändert nichts am Verhalten der
"Find"-Methode.

Für eine kurze Erklärung des Unterschieds zwischen der Wirkung
von "ResetBindings" und der Neuzuweisung der Datasource wäre ich
dankbar.

Beitrag wurde zuletzt am 11.01.14 um 14:48:14 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Bindingsource: Aktualisierung der Bindung für die Find-Metho...2.337Manfred X11.01.14 14:32
Re: Bindingsource: Aktualisierung der Bindung für die Find-M...1.626ErfinderDesRades11.01.14 21:51
Re: Bindingsource: Aktualisierung der Bindung für die Find-M...1.646Manfred X11.01.14 21:59
Workaround1.860Manfred X12.01.14 00:08
Re: Workaround1.760ErfinderDesRades12.01.14 03:15
Re: Workaround1.643Manfred X12.01.14 13:56
Re: Workaround1.642ErfinderDesRades12.01.14 15:08
Re: Workaround1.640ErfinderDesRades12.01.14 16:36
Re: Workaround1.637Manfred X12.01.14 17:48

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