Hallo,
ich habe eine listBox, die die Daten aus einem DataTable Objekt laden soll. Die Daten kommen aus der Datenbank. Es wird auch keine listBox angezeigt.
Ich habe zum Test mal eine ComboBox genommen und dort versucht die Daten aus DT zu füllen und es funktioniert.
Das Füllen der Datenbank:
public DataTable getAlleArtikelInBox(string wagenbox)
{
DataTable dt = new DataTable();
string[] split = wagenbox.Split(new Char[] { '!', 'ß', '-' });
try
{
if (this.Connect() == true)
{
MySqlCommand command = mysqlConnection.CreateCommand();
command.CommandText = "SELECT a.name FROM lvs_waegen AS w, lvs_auftrag_zu_position AS auzp, lvs_artikel AS a WHERE w.id = auzp.position_id AND auzp.artikel_id = a.id AND w.wagen = " + split[1] + " AND w.box = " + split[2];
MySqlDataReader Reader;
Reader = command.ExecuteReader();
dt.Columns.Add("name", typeof(string));
while (Reader.Read())
{
dt.Rows.Add(HttpUtility.HtmlDecode(Reader.GetValue(0).ToString()));
}
this.Disconnect();
}
}
catch (MySqlException e)
{
Console.WriteLine("Fehler: " + e.Message + " | Nummer: " + e.Number.ToString() + "Fehler beim übertragen der Daten!");
}
catch (Exception e)
{
Console.WriteLine("Fehler: " + e.Message + " Fehler beim übertragen der Daten!");
}
return dt;
}
Das ganze wird in ein byte Array umgewandelt und an den Client gesendet.
Der Code vom Client:
public Verpacken2(Client client, string box, string gesamt, Verpacken1 verpacken1, Error error)
{
InitializeComponent();
listBox1.Visible = false;
this.client = client;
this.box = box;
this.gesamt = gesamt;
this.verpacken1 = verpacken1;
this.error = error;
label3.Text = gesamt;
label5.Text = gesamt;
comboBox1.DisplayMember = "name";
comboBox1.ValueMember = "name";
listBox1.DisplayMember = "name";
listBox1.ValueMember = "name";
getDataTable();
}
public void getDataTable()
{
client.send(System.Text.Encoding.ASCII.GetBytes("datatablev|" + this.box));
System.Threading.Thread.Sleep(1000);
DataTable dt = new DataTable();
BinaryFormatter bformatter = new BinaryFormatter();
//Now deserialise
byte[] d = client.receive();
MemoryStream dtStream = new MemoryStream(d);
dt = (DataTable)bformatter.Deserialize(dtStream);
dtStream.Close();
comboBox1.DataSource = dt;
listBox1.DataSource = dt;
}
Ich bin echt ratlos, da es ja bei der ComboBox funktioniert.
--
Vielen Dank
LG
Kevin
Vllt. hilft folgendes weiter
Evtl als Beiwerk zum Genießen 😃
[Artikelserie] SQL: Parameter von Befehlen
Hi,
ich bin mal so dreist und behaupte das liegt an folgendem Schnipsel:
public Verpacken2(Client client, string box, string gesamt, Verpacken1 verpacken1, Error error)
{
...
listBox1.Visible = false;
...
}
LG
Oh man, da hab ich mich gewundert und übersehe diese Zeile nicht. 😁
Danke 👍
--
Vielen Dank
LG
Kevin