GridView bleibt leer
-
Hallo,
ich möchte einen DataGridView (WinForms) füllen.
Daten aus der Datenbank holen
public static DataTable AlleLieferartikelLieferant(Int32 no) { string strSQL; strSQL = @"SELECT DISTINCT a.bauteilnr, b.firma_standort AS Lieferant, a.lieferartikelbezeichnung AS 'Artikelbezeichnung Lieferant', a.lieferartikelid AS 'Artikelnummer Lieferant', a.preis AS Preis, a.anzahlpropreis AS 'Anzahl pro Preis' FROM tbllieferartikel a, tblkundeninfo c, tblstandort b WHERE b.StandortID = c.StandortID AND a.KundenNr = c.KundenNr AND c.GeschaeftsartID = 2 AND c.StandortID = ?supplierno ORDER BY b.firma_standort"; using (var con = new MySqlConnection(Program.connection)) { var command = new MySqlCommand(strSQL, con); command.Parameters.Add("?supplierno", MySqlDbType.Int32); command.Parameters["?supplierno"].Value = no; var da = new MySqlDataAdapter(); DataTable dt = new DataTable("Lieferartikel"); da.SelectCommand = command; da.Fill(dt); con.Dispose(); return dt; } }
Aufruf der Methode
private void cbLieferant_SelectedIndexChanged(object sender, EventArgs e) { Addresse lieferant= cbLieferant.SelectedItem as Addresse; if (lieferant!= null) { gridViewLieferant.DataBindings.Clear(); BindingSource bs = new BindingSource(); AlleLieferartikelLieferant(lieferant.ID); gridViewLieferant.DataSource = bs; } }
Keine Ahnung warum, aber es werden keine Daten im Grid angezeigt.
Der Parameterwert wird richtig übergeben und auch das SQL-Statment ist richtig.Keine Fehlermeldung ... einfach nichts.
Wo kann sich der Fehler eingeschlichen haben?
Danke!
-
Vielleicht solltest Du mit dem Rückgabewert (DataTable) von AlleLieferartikelLieferant() auch irgendwas anfangen und nicht einfach ins Leere laufen lassen.
-
Und wo füllst du
bs.DataSource
?
-
Peinlich ... sorry!
Habe Copy & Paste gemacht und beim Ändern des Methodennamens wohl ein wenig zu viel gelöscht ...
Jetzt geht es - danke Euch!
bs.DataSource = AlleLieferartikelLieferant(lieferant.ID);