Der füllt mir n Feld in meinem DataSet nicht und ich weiß nicht wieso...
con.Open();
OleDbDataAdapter daSelect = new OleDbDataAdapter("SELECT * FROM kObjekteRelation WHERE obj1 = " + id + " OR obj2 = " + id, con);
daSelect.Fill(ds, "daSelect");
DataColumn dc = new DataColumn("Objekt");
dc.Caption = "Objekt";
dc.DataType = System.Type.GetType("System.String");
ds.Tables[0].Columns.Add(dc);
int anzDatensaetze = ds.Tables[0].Rows.Count;
for (int i = 0; i < anzDatensaetze; i++)
{
int obj2 = 0;
if (Int32.Parse(ds.Tables[0].Rows[i].ItemArray[1].ToString()) == id)
{
obj2 = Int32.Parse(ds.Tables[0].Rows[i].ItemArray[2].ToString());
}
else
obj2 = Int32.Parse(ds.Tables[0].Rows[i].ItemArray[1].ToString());
OleDbCommand bezSelect = new OleDbCommand("SELECT Bezeichnung FROM kObjekte WHERE ID = " + obj2, con);
OleDbDataReader bezReader = bezSelect.ExecuteReader();
while (bezReader.Read())
{
object bla = (object) bezReader["Bezeichnung"];
ds.Tables[0].Rows[i].ItemArray.SetValue(bla, 5); // SOLL DEN WERT SETZEN MACHT ER ABER NICHT!!!!!
}
bezReader.Close();
}
ds.Tables[0].Columns.Remove("obj1");
ds.Tables[0].Columns.Remove("obj2");
dv = new DataView(ds.Tables[0]);
con.Close();
FillListe(); // fügt meinem DataGrid noch ne Spalte hinzu und füllt das Grid dann mit dv.
Funktioniert alles einwandfrei, das DataGrid is gefüllt, bis auf die Spalte "Objekt", also die mit dem Index 5.
Vielleicht findet ja einer von euch den Fehler, ich find da nix, eigentlich müsste es doch gehen oder?
Also in der Datenbank steht in den Feldern "Bezeichnung auch was drin, der holt da schon was raus.
In der object Variable "bla" steht das richtige drin.
keiner ne Idee ❔/
ich weiß nicht wie ich's anders machen soll.
Hilfe 🙁
Ok, hab jez noch was anderes gefunden.
ds.Tables[0].Rows[i][5] = bla;
funktioniert... warum auch immer das Andere nicht geht.
Naja..
Greetz
han