Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Warum liest der IDataReader nur jeden zweiten Eintrag?
TheGateway
myCSharp.de - Member



Dabei seit:
Beiträge: 12

Themenstarter:

Warum liest der IDataReader nur jeden zweiten Eintrag?

beantworten | zitieren | melden

verwendetes Datenbanksystem: Mysql/MariaDB

ich habe in einer DB viele Einträge, mit folgendem Code versuche ich diese auszulesen, was auch sehr gut klappt, bis auf die Tatsache, dass er einfach Einträge vergisst


            MySqlConnection mySqlConnection = new MySqlConnection(Connectionstring);

                mySqlConnection.Open();
MySqlCommand command = mySqlConnection.CreateCommand();
            command.CommandText = "SELECT * FROM a_roomByKats";

            IDataReader reader = command.ExecuteReader();
                
            while (reader.Read())
            {
                    
                    if (reader.Read())
                {
                        string roomID = reader[0].ToString();
                        string roomKatID = reader[1].ToString();
                        string roomName = reader[2].ToString();
                        string roomDescription = reader[3].ToString();
                        
                        listBox2.Items.Add(roomID.ToString());
                        Console.WriteLine(roomID.ToString() + " - " + roomKatID.ToString() + " - " + roomName.ToString() + " - " + roomDescription.ToString());
                     
                }
            }

            reader.Close();
            command.Dispose();
            mySqlConnection.Close();



fehlt
2 - 2 - Kassel - Kassel Cannel
fehlt
4 - 2 - Bayern - Bayern
fehlt
6 - 2 - Brandenburg - Brandenburg
fehlt
8 - 2 - Hamburg - Hamburg
fehlt
10 - 2 - Mecklenburg-Vorpommern - Mecklenburg-Vorpommern
fehlt
fehlt
13 - 2 - Saarland - Saarland
fehlt
15 - 2 - Sachsen-Anhalt - Sachsen-Anhalt
fehlt
fehlt
17 - 2 - Thüringen - Thüringen
er ließt nur jeden 2 oder 3ten Eintrag aus, woran könnte es liegen?
Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von TheGateway am .
private Nachricht | Beiträge des Benutzers
dannoe
myCSharp.de - Member



Dabei seit:
Beiträge: 225

beantworten | zitieren | melden

Weil du zwei mal reader.Read() aufrufst, bevor du etwas mit den Daten machst.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von dannoe am .
private Nachricht | Beiträge des Benutzers
TheGateway
myCSharp.de - Member



Dabei seit:
Beiträge: 12

Themenstarter:

beantworten | zitieren | melden

Zitat von dannoe
Weil du zwei mal reader.Read() aufrufst, bevor du etwas mit den Daten machst.

ohjee, manchmal sieht man den wald vor lauter bäumen nicht, vielen dank :)
private Nachricht | Beiträge des Benutzers
Stefan.Haegele
myCSharp.de - Member

Avatar #avatar-3068.jpg


Dabei seit:
Beiträge: 462
Herkunft: Untermeitingen

beantworten | zitieren | melden

 command.CommandText = "SELECT * FROM a_roomByKats";

Absolutes NoGo - auch nicht zum Testen. Niemals Daten per * abrufen...
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.030

beantworten | zitieren | melden

Damit die Aussage von Stefan auch begründet ist:
Why is SELECT * considered harmful?
private Nachricht | Beiträge des Benutzers