Datensätze ins Label schreiben
-
Hallo zusammen,
habe nun eine Datenbank erstellt (mit Tabelle) mit einmal der Spalte Spieler und Stärke.So nun gebe ich die Spalte Spieler in einer ListBox aus, wo alle Datensätze dieser Spalte angezeigt werden. Was auch funktioniert.
Nun steht zu jedem Datensatz eine Stärke die nur dann in einem Label angezeigt werden soll wenn der bestimmte Spieler in der ListBox angeklickt ist.
connection.Open(); Reader = command.ExecuteReader(); while (Reader.Read()) { lb_aufstellung.Items.Add(Reader.GetValue(0).ToString()); lbl_stärke.Text = Reader.GetValue(1).ToString(); } connection.Close();
Mit diesem Code werden halt alle Datensätze ins Label geschrieben, nun soll aber immer nur die Stärke vom angeklickten Spieler angezeigt werden.
Jetzt hab ich mir gedacht einen SelectIndexChanged Funktion mit reinzubringen
connection.Open(); Reader = command.ExecuteReader(); while (Reader.Read()) { lb_aufstellung.Items.Add(Reader.GetValue(0).ToString()); void lb_aufstellung_SelectedIndexChanged(object sender, EventArgs e) { lbl_stärke.Text = Reader.GetValue(1).ToString(); } } connection.Close();
Dabei wird aber als Fehler ausgeben, dass ich keine Methoden in den Namespace schreiben kann.
Mfg Poldi
-
void lb_aufstellung_SelectedIndexChanged(object sender, EventArgs e) { lbl_stärke.Text = Reader.GetValue(1).ToString(); }
sollte schon ausserhalb deiner ersten funktion stehen...
lies doch die daten erst einmal ein und dann arbeite darauf.
ergo:
Dictionary<Spieler,Stärke> _Spielerdaten = new Dictionary<Spieler,Stärke>(); void ReadDB() { ... while (Reader.Read()) { _Spielerdaten[new Spieler(Reader.GetValue(0).ToString())] = new Stärke(Reader.GetValue(1).ToString()); } ... }
dann kannst du dir eine funktion schreiben die auf "SelectedIndexChanged" horcht.
darin:
-wer wurde angeklickt?
-wer ist das in meinen _Spielerdaten
-_Spielerdaten[Spieler] in dein Label eintragenGrüße