Datasoure kann nicht gebunden werden

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Datasoure kann nicht gebunden werden

    Hallo,
    ich habe mir in einem neuen Projekt ein Dataset angelegt und darin zwei Table-Adapter mit einer 1:n Beziehung. Nun möchte ich auf meine Form ein Textfeld aus TabellenAdapter1 holen, und ein Datagridview aus Table-Adapter2. Wenn man in das Textfeld nun einen String eingibt, sollen die zugehörigen Sätze in dem Datagridview angezeigt werden.
    Ich bekomme aber beim Starten des Programms den Fehler:

    VB.NET-Quellcode

    1. An die Eigenschaft oder Spalte lfdnr für die DataSource kann nicht gebunden werden.

    Ich finde hier aber keinen Fehler.

    Was habe ich falsch gemacht?

    Vielen Dank!
    Nein, es müsste schon über die Beziehungen der Tabellen gehen, da ich in der einen Tabelle Personen habe und in der anderen Informationen zu den Personen. Die Relation habe ich auch im Dataset richtig dargestellt, mit relation etc. Wenn ich nun aber von der Tabelle mit dem PrimaryKey z.B. ein Datagridview auf die Form ziehe übernimmt er nicht einmal die Spaltenköpfe dieser. Bei der zweiten Tabelle funktioniert es.
    Ich wiederhole mich, du zeigst und nicht deinen Source in dem eventuell der Fehlerteufel ist!

    Und das geht trotzdem mit dem BindingSource, weil du dem BindingSource dein DataSet zuweisen kannst und somit das gewünscht angezeigt wird..
    also, ich habs nun wie folgt:

    VB.NET-Quellcode

    1. Dim FilterName As String = TextBoxFilter.Text
    2. Me.KB_stammdatenBindingSource.Filter = "Name='" + FilterName + "'"
    3. Me.KB_stammdatenTableAdapter.Fill(Me.KBADataSet.KBA_Patientenstammdaten)
    4. Me.KB_akteTableAdapter.Fill(Me.KBDataSet.KB_akte)

    das funktioniert auch, nur benötigt er recht lange dafür. kann man das auch beschleunigen?

    danke!

    p.s.: zum thema code zeigen ... vielmehr code ist das ja nicht.

    nemesis schrieb:

    Hallo,
    ich habe mir in einem neuen Projekt ein Dataset angelegt und darin zwei Table-Adapter mit einer 1:n Beziehung.
    zunächst mal habe TableAdapter mit Beziehungen nix zu tun.

    Nun möchte ich auf meine Form ein Textfeld aus TabellenAdapter1 holen, und ein Datagridview aus Table-Adapter2.
    aus einem TableAdapter kann man auch keine Textfelder holen

    Wenn man in das Textfeld nun einen String eingibt, sollen die zugehörigen Sätze in dem Datagridview angezeigt werden.
    sowas kann man bewirken, indem man an DataTables des Datasets bindet, aber TableAdapter haben weder mit Databinding noch mit Relationen iwas zu schaffen.

    Ich bekomme aber beim Starten des Programms den Fehler:

    VB.NET-Quellcode

    1. An die Eigenschaft oder Spalte lfdnr für die DataSource kann nicht gebunden werden.
    Klingt so, als seien Bindings eingerichtet worden, und danach Änderungen am Datenmodell vorgenommen.
    Dabei kann sowas entstehen, dass Bindings an nicht mehr vorhandene Datenspalten eingerichtet sind. gibt es in deim Dataset die Spalte lfdnr?
    Wie gesagt, jetzt passt das soweit wieder ... wenn ich jetzt 2 Datagridviews auf die Form zieh, dann passt auch die beziehung zwischen diesen. Aber wie kann ich nun anstatt 2 Datagridviews ein Textfeld und ein Datagridview erstellen, so dass bei einem Eintrag in das Textfeld die passenden Sätze im Datagridview angezeigt werden?

    das mit dem Bindingsource-Filter funktioniert, ist aber sehr träge.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „nemesis“ ()

    1. Du kannst die Tabelle als Detail-Ansicht aufs Form ziehen - dann werden Textboxen generiert statt eines DatagridViews. gugge "DetailView" auf Movie-Tuts

    2. nemesis schrieb:

      das mit dem Bindingsource-Filter funktioniert, ist aber sehr träge.
      Warum lädst du auch die ganze Tabelle jedesmal neu? Die Daten sind doch da, warum die Tabelle neu befüllen?
      Sogar 2 Tabellen befüllst du neu.