Frage von datensammler, 21

C# Datenbank vor und zurück?

Hallo

Ich bin gerade an einem Formular das die Funktionen vor und zurück (</>) machen soll. Damit ich die erfassten Benutzer wieder im Formular sehe die ich erfasst habe . Das sollte der Zurück Button sein. leider funktioniert er nur beim ersten Datensatz.. Kann mir jemand weiterhelfen ?

     SqlConnection connection = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Benutzer;Data Source=C:\\Windows\Datenbank");

        connection.Open();
     
        int nummer ;

        SqlCommand command = connection.CreateCommand();

        command.CommandText = "select * from Anmeldung;";


        command.ExecuteNonQuery();
        SqlDataReader Datensatz = command.ExecuteReader();
        if (Datensatz.HasRows)
        {
            while (Datensatz.Read())
            {

                BenutzerID[nummer] = Datensatz.GetInt32(0);
                Benutzername[nummer] = Datensatz.GetString(1);
                Benutzerenort[nummer] = Datensatz.GetString(2);
              Benutzeremail[nummer] = Datensatz.GetString(3);
                Benutzeralter[nummer] = Datensatz.GetInt32(4);
                Benutzerplz[nummer] = Datensatz.GetInt32(5);
      

                nummer++;
      

            }
            connection.Close();
            
          
            {
                nummer--;
               
               
                string name = (Benutzername[nummer]);
                NameBox.Text = name;
                string ort = (Benutzernort[nummer]);
                OrtBox.Text = ort;
                string email = (Benutzeremail[nummer]);
                EmailBox.Text = email;
                int alter = (Benutzeralter[nummer]);
                alterBox.Text = alter;
                int plz = (Benutzerplz[nummer]);
               plzBox.Text = plz;

}

Antwort
von xGlumi, 4

Also der Code so wie du ihn jetzt hast lässt doch keinerlei Freiheit für einen Userinput.

Soweit ich das sehe deklarierst du deine "nummer" (Die immer 0 zu anfang)

anschließend füllst du alle Datensätze in deine Arrays (Sagen wir mal es sind 30)

Dann ist deine Nummer irgendwann bei 29
anschließend zählst du eine Runter: 28 und dieser Datensatz wird dir angezeigt, immer wieder dieser eine.

Bei jedem durchgang.

Wieso speicherst du überhaupt wenn man auf "Zurück" klickt jedes mal alle Datensätze in ein Array? (Zumindest hast du gesagt das da oben ist der Code der im "Zurück"-Button steht)

Entweder lässt du dir zu anfang die gesamte DB in deine Arrays laden, und spielst anschließend mit den "Vor"/"Zurück"-Buttons nurnoch mit dem Iterator rum (Ohne zusätzliche DB-Verbindungen)

oder wenn du jedesmal eine DB-Abfrage willst, musst du mit den Iterator jedesmal ein höher/niedriger setzen, und in der DB solange durchgehen bis du den einen Eintrag gefunden hast der an Stelle XY ist, und nur diesen lässt du dir ausgeben.

So ich hoffe dass ich deine Frage überhaupt richtig verstanden habe, und ich dir helfen konnte.

Wenn du noch hifle brauchst dann kann ich dir gerne helfen.

MFG xGlumi

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten