Announcement

Collapse
No announcement yet.

Binding zu einem Datagridview mit variabler m SQL Parameter

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Binding zu einem Datagridview mit variabler m SQL Parameter

    geht sowas?
    also
    es besteht ein Binding zwischen verschiedenen Textfeldern an eine KundenTabelle

    jetzt will ich ein DataGridview mit Ansprechpartnern füllen die über einen Schlüssel in Beziehung zum Kunde stehen
    aber ich bekomme es nicht hin
    ich kann ja schlecht im bindingsource-filter = "fiKunde= textbox.idkunde" machen ?
    was gibt es da für Möglichkeiten ?

  • #2
    z.B. kannst du aus dem TextChanged Event der TextBox den BindingSource.Filter nachziehen. Ein automatisches Binding ohne Code wirst du so ohne weiteres nicht bekommen.

    Steckt hinter "textbox.idkunde" nicht ein Datensatz in deinem Model? Je nach Model sollte dann das Filtern aus dem Model kommen können. Auf jeden Fall nicht aus einem Control wenn dieses Control selbst an eine Model Property gebunden ist.

    Comment


    • #3
      was meinst du mit Modell?

      also ich habe eine Datatable gefüllt mit KundenDaten
      und wollte jetzt eine zweite Datatable mit den Ansprechpartnern machen
      und dieses dann über den Schlüssel idKunde <> fikunde verbinden.

      Ich will es mit Absicht nicht in eine SQL machen da diese Daten eher unwichtig sind und mir vielliecht an anderen Stellen Geschwindigkeitseinbußen bringen

      Also eigentlich nix anderes als würde ich ne Combo verbinden

      Code:
      OpenDB()
      dt = getSQLdirekt("Select idPreisKlasse, dtPreisKlName from tblPreisKlasse")
      CloseDB()
      
      Dim bPreisklasse As New BindingSource
      bPreisklasse.DataSource = dt
      With ComboPreisKlasse
       .DataSource = bPreisklasse
       .DisplayMember = "dtPreisKlName"
       .ValueMember = "idPreisklasse"
       .DataBindings.Add("SelectedValue", bs, "fiPreisklasse")
      End With
      nur habe ich beim Datagridview ja keine ValueMember etc...

      Comment


      • #4
        also ich habe eine Datatable gefüllt mit KundenDaten
        und wollte jetzt eine zweite Datatable mit den Ansprechpartnern machen
        und dieses dann über den Schlüssel idKunde <> fikunde verbinden.
        Das würde ich als Master-Detail Beziehung zwischen KundenDaten und Ansprechpartnern sehen. In einer typisierten Dataset (in dem du auch Relationen zwischen den beiden Datatables designt hast) hättest du an einer KundenDaten DataRow dann eine Property die dir eine gefilterte Sicht auf Ansprechpartner liefert. Die würdest du dann an dein DataGridview binden.

        Aus deinem Code entnehme ich das ihr aber wahrscheinlich mit untypisierten Datatables arbeitet. Da fällt mir dann auch kein sinnvoller Weg ein da entsprechende Funktionalität dranzuschrauben. Bleibt die angesprochene Methode den Filter über ein Changed Event selber neu zu setzen.


        was meinst du mit Modell?
        Dein System von Klassen das die Daten hält.

        Comment


        • #5
          ja beim typisierten gehts aber da will ich eigentlich nicht hin

          ich finde gar kein Change Ereignis im datagridview

          offTopic:
          #####
          hat vielliecht jemand ein Beispiel für ne untypisierte Datenbingung an ein Datagridview mit irgendwelchen Update Insert Delete prozeduren. Ich finde da nur Beispiele mit irgendwelchen speicher Buttons.
          #####

          Dann könnte ich im Bs.Pos_change einfach das datagridview immer neu setzen und die Bearbeitung direkt im Gridd abhandeln

          Comment


          • #6
            Code:
            ich finde gar kein Change Ereignis im datagridview
            Ich dachte deine IdKunde hängt an einer TextBox und ich hatte es auch so verstanden das die Id frei eingegeben wird.

            Wie auch immer deine KundenDaten hängen ja wahrscheinlich über eine BindingSource an der UI. Dann wäre es wohl am geschicktesten deren BindingSource.CurrentChanged Event zu benutzen und dort mit der aktuellen KundenDaten DataRow die man dort an der Hand hat den Filter der BindingSource der Ansprechpartnern zu ändern.

            Comment


            • #7
              ich hätte sie an ne textbox gehangen wenns nicht anders geht
              aber ich habs jetzt über eine Relation gemacht

              und dann die relation an das DGV gebunden

              Code:
                          Dim btest As New BindingSource()
                          btest.DataSource = bs
                          btest.DataMember = "KundenRelation"
                          dgvAnsprechpartner.DataSource = btest
              jetzt brauch ich nur noch den richtigen Event, des DGV wenn daten eingegeben, geändert oder gelöscht werden, um ein Update zur Datenbank zu fahren

              Comment

              Working...
              X