Ich versuchte gerade alle Comboboxen in einem Programm in eine Klasse "combo" auszulagern. zudem hab ich eine Klasse, die alle Datenbank-Arbeiten erledigt (cDBWorks, objekt hier: cDBObj), von dieser bekomme ich das Datatable als Rückgabewert einer Funktion. Das Problem ist, wenn ich die Daten für meine Combobox in der form.cs direkt anbinde, geht alles. wenn ich es mit einem Verweis auf das Objekt cmb (klasse combo) mache, wird in der Combobox nichts angezeigt. Hab ich vielleicht einen grundsätzlichen Denkfehler gemacht?
Hier jetzt das ganze als Kot:
In der Form:
cmbTitelVerwaltungVersion.DataSource = cDBObj.showVersionen();
cmbTitelVerwaltungVersion.ValueMember = "VID";
cmbTitelVerwaltungVersion.DisplayMember = "Vbezeichnung";
Was ich gerne nur hätte, wäre:
cmbTitelVerwaltungVersion = cmb.cmbVers(cDBObj.showVersionen());
Und in der Kasse combo:
public ComboBox cmbVers(DataTable dt)
{
ComboBox VERS = new ComboBox();
VERS.DataSource = dt;
VERS.ValueMember = "VID";
VERS.DisplayMember = "VBezeichnung";
return VERS;
}
Klasse cDBWorks:
public DataTable showVersionen()
{
ConnectionOpen();
string sql = "SELECT * FROM Versionen";
daVersionen = new SqlDataAdapter(sql, conn);
daVersionen.Fill(ds, "Versionen");
dtVersionen = ds.Tables["Versionen"];
ConnectionClose();
return dtVersionen;
}