Announcement

Collapse
No announcement yet.

Daten neben der BindingSource aus DataTable aktualisieren

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

  • #31
    ich habs jetzt hinbekommen mit einem find im Dataset dann findet er den richtigen Satz, keine ahnung warum ein find im BS da ein falsches Ergebnis bringt

    Aber das:
    Dim rw As DataRow = CType(bs.Current, DataRowView).Row

    ist jetzt letztendlich die Lösung !!

    DANKE

    Wenn ich jetzt noch herausbekomme warum beim Navigieren durch das BS die Rowa auf Modify gesetzt werden fällt mir echt ein Stein vom Herzen.

    Comment


    • #32
      Wenn ich jetzt noch herausbekomme warum beim Navigieren durch das BS die Rowa auf Modify gesetzt werden fällt mir echt ein Stein vom Herzen.
      Da sind wir jetzt wieder am Anfang dieses Thread

      ch hab die Datatable einfach mal with events deklariert und columchanged getestet
      das wird aber nur aufgerufen wenn ich durch die daten navigiere nicht wenn ich ein updatecommand durchführe auf dem ganzen...
      Wenn du den Code mit ColumnChanged noch hast solltest du in ColumnChanged mal einen Breakpoint setzen und im Stack nachschauen von wo der den ausgelöst wurde. Den der ColumChanged Event wird ja durch Datenänderung ausgelöst nicht durch navigieren.

      Comment


      • #33
        Originally posted by Ralf Jansen View Post
        Da sind wir jetzt wieder am Anfang dieses Thread
        Nicht ganz eher Mittelteil :-D

        Aber ich hab den Fehler gefunden

        ich verbinde ja die Textfelder mit den Datenbankfeldern

        TextBoxKundenNr.DataBindings.Add("Text", bs, "dtKundenNr")

        etc...

        Da ich das früher in VB6 auch immer so gemacht hab merke ich mir global
        auf einfachste weiße die ID in dem ich das LabelKundenNr missbrauche und es in den TAG schreibe

        LabelKundenNr.DataBindings.Add("Tag", bs, "idKunde")

        allein diese Zeile löst beim navigieren den Modify State aus :-D

        Comment


        • #34
          ich häng schon wieder an ner Bindingsource sache
          ich hab zwar nen Beitrag drüber gefunden aber ich soll ja nicht alte Beiträge nach vorn holen

          und das Problem passt ja auch hier rein.

          Ich will nen neuen Kunden anlegen auf Knopfdruck

          Code:
            Try
                      Dim rw As DataRow = dt.NewRow() 
                      Dim dDAtum As Date = Now
                      'wir bauen unseren Dummy Datensatz
                      rw("dtKundenNr") = "dummy"
                      rw("dtZuname") = "."
                      rw("dtStrasse") = "."
                      rw("dtPlZ") = "."
                      rw("dtOrt") = "."
                      dtKunde.Rows.Add(rw)
                      bs.EndEdit()
          
                     Dim i As Integer = bs.Find("dtKundenNr", "dummy")
                      MsgBox(i)
                  
                  Catch ex As Exception
                      MsgBox(ex.Message)
                  End Try
          jetzt sollte dieser Datensatz eigentlich in meinen verbundenen Textboxen angezeigt werden(bis dato muss noch nichts in die Datenbank zurückgeschrieben werden), der User kann seine Daten eingeben auf speichern drücken, eine vortlaufende KundenNr wird generiert etc...
          Zuletzt editiert von Ben Graf; 22.12.2010, 15:40.

          Comment


          • #35
            Du hast vergessen dein Problem auch zu benennen. Ich interpretiere mal 'sollte dieser Datensatz eigentlich' so das deine Controls nicht aktualisiert werden.

            Das sollte eigentlich mal wieder automatisch ohne besonderen Eingriff funktionieren. Um dem nachzuhelfen hilft EndEdit zumindest nicht. EndEdit überträgt Daten aus einem Control in die gebundene Datenmenge nicht umgekehrt. Um nachzuhelfen könntest du ein ResetBindings an der BindingSource aufrufen. Sollte aber wie gesagt ~normalerweise~ unnötig sein.

            Comment


            • #36
              un da es unnötig ist funktionierts auch nicht :-D

              sorry das Problem ist das nach dem Rows.add
              und auch nach code änderung nichts in den Feldern angezeigt wird
              Code:
              Dim rw As DataRow = dtKunde.NewRow()
                          ......
                          rw("dtPlZ") = "."
                          rw("dtOrt") = "."
                          rw("fiPreisklasse") = 99
              
                          dtKunde.Rows.Add(rw)
                          bs.ResetBindings(False)
              
                          Dim i As Integer = bs.Find("dtKundenNr", rw("dtKundenNr"))
              i = -1

              Comment


              • #37
                Und du bist dir sicher das dtKunde (und die BindingSource bs) die Datenmenge ist die an den Controls hängt auf die du schaust? Vielleicht mal testweise die Datasource an der BindingSource neu zuweisen.

                Comment


                • #38
                  ich hab mein Programmierfehler entdeckt
                  da ich ja einen Filter auf dtausgeblendet = 0 gesetzt hab in der BS und in meiner Row habe ich es nicht gesetzt also Null. wirds natürlich nicht angezeigt
                  Zuletzt editiert von Ben Graf; 23.12.2010, 09:31.

                  Comment

                  Working...
                  X