Ich hoffe, Sie können mir bei diesem Problem helfen.Erhalten Sie alle Elemente einer Liste in Listbox
Ich kann meine Biere nicht in der Listbox bekommen. Wenn ich versuche, dies zu tun, bekomme ich diese in meinem Listbox:
Ich weiß nicht, wie ich dieses Objekt in einer Listbox erhalten
ich es mit dem folgenden Code versucht: Hier bitte ich um die Datenbank zu Wählen Sie alle Merkmale aus dem Beertable.
public List <Beer> ReadBeers()
{
string query = "SELECT * FROM beer";
MySqlCommand cmd = new MySqlCommand(query, conn);
List<Beer> beerList = new List <Beer>();
using (MySqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
string name = reader.GetString(1);
string brand = reader.GetString(2);
int dato = reader.GetInt32(3);
int beerType = reader.GetInt32(4);
Beer myBeer = new Beer(name, brand, dato, beerType);
beerList.Add(myBeer);
Console.WriteLine();
}
}
return beerList;
}
Dies ist die listbox von der Form i mit korrekten Informationen füllen wollen!
private void fillListbox_Click(object sender, EventArgs e)
{
beerlistBox.Items.Clear();
dbbeer.DatabaseConnect();
List<Beer> beerList = dbbeer.ReadBeers();
foreach (Beer beer in beerList)
{
beerlistBox.Items.Add(beer);
}
dbbeer.DatabaseDisconnect();
}
The Class Beer:
class Beer
{
private Database databaseconnection = new Database();
public enum Biersoort
{
Alcoholarm,
Alcoholvrij,
Ale,
Alt,
Amber,
Blond,
Bock,
Champagnebier,
Cider,
Dortmunder,
Dubbel,
Dunkel_weizen,
Eisbock,
Faro,
Fruit,
Gerstebier,
Gerstewijn,
Geuze,
Gose,
Gruit,
Herfstbok,
Honingbier,
Kellerbier,
Koffiebier,
Kriek,
Lager,
Lambiek,
Lentebier,
Lentebok,
Light,
Mexicaans,
Oud_bruin,
Pale_Ale,
Pils,
Porter,
Quadrupel_bier,
Radler,
Rosé,
Saison,
Schwarzbier,
Stout,
Tequila_bier,
Tripel_bier,
Vruchtenbock,
Weizen,
Whiskeybier,
Winterbier,
Wit
};
private string name;
private string brand;
private int dato;
private int beertype;
public Beer(string pName, string pBrand, int pDato, int pBeertype)
{
name = pName;
brand = pBrand;
dato = pDato;
beertype = pBeertype;
}
public void insertDatabase()
{
databaseconnection.DatabaseInsert("INSERT INTO beer(name, brand, dato, beertype) VALUES('" + name + "' , '" + brand + "' ,'" + dato + "' , '" + beertype + "')");
}
}
}
Wenn Sie die Anwendung Debugging durch die While-Schleife debuggen, welche Werte erhalten Sie für die Reader-Objekte .. auch würde ich empfehlen, die Reader-Felder von deren Name nicht Indexposition – MethodMan
Wie kann ich das machen? –
Verwenden Sie auch nicht '*' in Ihrer Abfrage. Dies führt in den meisten Fällen dazu, dass Sie Indizes umgehen oder eine indexierte Suche verwenden oder einfach nur die Daten aus einem Index verwenden, sofern verfügbar (dies führt auch dazu, dass Spalten verwendet werden, die Sie niemals zum Abrufen verwenden). Und schließlich, weil Sie nach Index suchen, was passiert, wenn die Spalten jemals neu geordnet werden? –