Announcement

Collapse
No announcement yet.

Neuen Datensatz ins Formular laden

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

  • Neuen Datensatz ins Formular laden

    Gibt es einen einfachen Weg, das ein vom Benutzer gerade neu angelegter leerer Datensatz im Formular zur Dateneingabe angezeigt wird.

    Die Möglichkeit der absteigenden Sortierung ist in einer Mehrbenutzerumgebung ja zu risikoreich.

  • #2
    Hallo,

    Frage und Situation sind wohl zu vage beschrieben, als dass eine sinnvolle Antwort möglich ist: Wo und wie wird der Datensatz angelegt? Wo und wie soll er angezeigt werden? Was hat das mit der Sortierung zu tun?

    (Die Datenmenge gerade in einer SQL-Datenbank, aber auch in einer DataTable ist grundsätzlich sowieso unsortiert, deshalb verstehe ich nicht, wieso eine Anzeige zu einem Problem führen könnte.)

    Gruß Jürgen

    Comment


    • #3
      Würde ich absteigend sortieren, hätte ich ja den letzten (also neu angelegten) Datensatz zur Anzeige im Formular.
      In einer Mehrbenutzerumgebung könnte aber bereits ein anderer Benutzer einen neuen Datensatz eingefügt haben und der würde mir dann angezeigt.

      Comment


      • #4
        Originally posted by daribla View Post
        In einer Mehrbenutzerumgebung könnte aber bereits ein anderer Benutzer einen neuen Datensatz eingefügt haben und der würde mir dann angezeigt.
        Zumindest gilt das im Regelfall nicht. Die Datenmengen (Datenbank und DataSet) sind getrennt! Es gibt keine dauerhafte Verbindung; du erfährst Änderungen in der Datenbank nicht automatisch (naja, mit SqlDependency sieht das etwas anders aus), sondern erst auf deine ausdrückliche Anforderung hin.

        Außerdem sind Datenmengen unsortiert. Eine Sortierung ist sowieso nur eine temporäre Anzeige, beeinflusst aber die Daten selbst nicht.

        Lass also doch deinen Anwender sortieren, soviel er lustig ist. Jürgen

        Comment


        • #5
          Es geht mir ja um folgendes Szenario:

          Der Anwender klickt im Formular auf Neu.
          Der Code hinter neu ist: BindingSource.AddNew(), welcher einen
          neuen Datensatz erstellt, der dann auch im Formular angezeigt
          wird und in dem der Anwender seine Daten eintragen kann.

          Klickt der Anwender dann auf speichern, werden mit:

          TableAdapter.Update
          TableAdapter.Fill

          die Daten gespeichert und aktualisiert.
          Nach der Aktualisierung wird dann allerdings nicht der gerade vom
          User eingegebene Datensatz angezeigt sondern der erste Datensatz
          aus der Tabelle.

          Mein Ziel ist es aber, dass der User wieder seinen Datensatz nach dem speichern sieht.

          Comment


          • #6
            Vor dem Update Id des Datensatzes merken und nach dem update BindingSource.Current wieder entsprechend setzen bzw. nochmal überdenken warum du ein Fill nach dem Update benötigst.

            Comment


            • #7
              Originally posted by Ralf Jansen View Post
              Vor dem Update Id des Datensatzes merken und nach dem update BindingSource.Current wieder entsprechend setzen bzw. nochmal überdenken warum du ein Fill nach dem Update benötigst.
              Danke für den Hinweis, habe es so gelöst:

              Position merken und nach dem update wieder setzen mit BindingSource.Position.

              Comment


              • #8
                Position merken und nach dem update wieder setzen mit BindingSource.Position.
                Das funktioniert natürlich nur wenn die Reihenfolge und Anzahl der Datensätze gleich bleibt. In einem Multiusersystem ist das nicht unbedingt sichergestellt.

                Das über eine eindeutige ID zu steuern würde ich für sicherer halten.

                Comment


                • #9
                  Originally posted by Ralf Jansen View Post
                  Das funktioniert natürlich nur wenn die Reihenfolge und Anzahl der Datensätze gleich bleibt. In einem Multiusersystem ist das nicht unbedingt sichergestellt.

                  Das über eine eindeutige ID zu steuern würde ich für sicherer halten.
                  Das Problem dabei ist, dass die ID ein Autoinkrementwert ist und ich diese erst nach dem Update also beim speichern des Datensatzes in die Mysql Datenbank vergeben wird.

                  Comment


                  • #10
                    Wenn ich mich nicht irre konnte man die DataSets so einstellen, dass sie einen Datensatz erneut aus der DB holen wenn ein Update/Insert stattgefunden hat (Stichwort Trigger und AutoInc Funktionen).

                    Comment

                    Working...
                    X