datatable auslesen
-
hallo
dtData ist eine datatable
nun will ich auf ein bestimmtes feld der tabelle zugreifen:dtData->Columns[i]->Rows[j]->Value;
was ist der fehler daran bzw kann man leicht auf datatables nicht zugreifen?
danke lg
-
was passiert denn?
genaue fehlerbeschreibungen helfen..
-
es treten 2 kompilererrors auf:
error C2039: 'Rows': Ist kein Element von 'System::Data::DataColumn'
error C2227: Links von "->Value" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.
-
Error Nr. 2 ist ein Folgefehler von Error Nr. 1.
Hier ist die Doku zur DataTable und DataColumn.
http://msdn.microsoft.com/en-us/library/system.data.datatable.aspx
http://msdn.microsoft.com/en-us/library/system.data.datacolumn.aspxDa erkennst Du auch, dass es bei DataColumn kein Property Rows gibt.
Auf die Rows musst Du direkt per DataTable zugreifen.
http://msdn.microsoft.com/en-us/library/system.data.datatable.rows.aspxGruss Simon
-
muss ich nochmal blöd nachfragen weil ein neuer fall aufgetaucht ist!
was macht der kompiler ziwschen den beiden fällen für einen unterschied?Fall11:
if (Convert::ToString(dtTable2->Rows[i][2]) != "")
Fall2:
if (dtTable1[iRows][0] == dtTable2[i][0])
fall 1 wird fehlerfrei abgearbeitet, fall 2 wirft den fehler C3915
wenn ich mir den fehler in der hilfe ansehe kann ich allerdings keinen unterschied zwischen den beiden abfragen ausmachen ...
-
Es sind zwei völlig unterschiedliche Fälle.
Beim Fall 2 sagt Dir der Kompiler, dass die DataTable kein Indexer hat.
Du musst eben über die Eigenschaften Rows und Columns zugreifen.Simon
-
wie soll ich über rows und columns zugreifen!
eine row hat keine property columns!
ein kleines bsp wäre bitte bitte sehr hilfrech
stehe leider (ein wenig) auf der leitung
-
Michael000 schrieb:
wie soll ich über rows und columns zugreifen!
eine row hat keine property columns!Zur Not kannst Du es mit ItemArray machen (wenn Du kein strong typed dataset verwendest)
foreach (DataRow row in table.Rows) { int colnr = table.Columns[dbcolmn].Ordinal; Object[] fields = row.ItemArray; int value = (int)(fields[colnr]); fields[colnr] = newValue; row.ItemArray = fields; }
-
Hier auch noch ein wenig Hilfe Code, ist in C#, sollte aber leicht verständlich sein.
DataTable dt = new DataTable("Tabelle"); dt.Columns.Add(new DataColumn("Erste Spalte")); dt.Columns.Add(new DataColumn("Zweite Spalte")); DataRow dr = null; dr = dt.NewRow(); dr.ItemArray = new object[] {"Zeile 1, Spalte 1", "Zeile 1, Spalte 2" }; dt.Rows.Add(dr); dr = dt.NewRow(); dr.ItemArray = new object[] {"Zeile 2, Spalte 1", "Zeile 2, Spalte 2" }; dt.Rows.Add(dr); object value = null; dr = dt.Rows[0]; value = dr[1]; value = dr["Zweite Spalte"];
Simon
-
asooo
so hast du das gemeint! verstehe schon!
danke