2016-10-16 4 views
0

So habe ich eine Web-API, die Werte aus meiner Datenbank darstellt. Allerdings habe ich 6 Zeilen in meiner Datenbank, aber es gibt nicht die erste Zeile zurück.Reader gibt nicht alle Zeilen aus der Datenbank zurück

Wie kann ich alle Zeilen in meiner Datenbank lesen und zurückgeben?

 cmd.CommandText = "SELECT * FROM `CustomerDb`"; 
     cmd.CommandType = CommandType.Text; 
     cmd.Connection = mySqlConnection; 

     mySqlConnection.Open(); 
     MySqlDataReader reader = cmd.ExecuteReader(); 

     var listOfPlace = new List<Place>(); 

     if (reader.Read()) 
     { 
      while (reader.Read()) 
      { 
       var Place = new Place(); 
       Place.ID = Convert.ToInt32(reader["id"]); 
       Place.Name = reader["name"].ToString(); 
       Place.Address = reader["address"].ToString(); 
       Place.City = reader["city"].ToString(); 
       Place.Category = reader["category"].ToString(); 

       listOfPlace.Add(Place); 
      } 
     }; 
     return listOfPlace; 

Antwort

1

Entfernen wenn Block.

if (reader.Read()) 
    { 
+0

Danke zu lesen. Aber brauche ich nicht versuchen, Ausnahmen zu fangen? –

+0

warum denkst du das? Aber wenn Sie es für andere Zwecke verwenden möchten, dann können Sie –

+0

verwenden Great! Vielen Dank. Gerade jetzt kehrt es in aufsteigender Reihenfolge zurück. Wie kann ich es in der Reihenfolge zurückgeben, die ich innerhalb der Schleife gemacht habe (ID, Name, Adresse, Stadt, Kategorie)? –

0

Die erste reader.Read() innerhalb if-Anweisung die erste Zeile dann während Loop-Start aus der zweiten Reihe zu lesen, so dass Sie den if(reader.Read()) Teil entfernen müssen alle Daten von Anfang an

while (reader.Read()) 
    { 
     var Place = new Place(); 
     Place.ID = Convert.ToInt32(reader["id"]); 
     Place.Name = reader["name"].ToString(); 
     Place.Address = reader["address"].ToString(); 
     Place.City = reader["city"].ToString(); 
     Place.Category = reader["category"].ToString(); 

     listOfPlace.Add(Place); 
    } 
Verwandte Themen