Angaben von David Sceppa bezüglich DataViewRow in ADO.NET 2.0 nicht reproduzierbar
-
Hallo zusammen!
Im Buch von David Sceppa über ADO.NET gibt der Autor einen Hinweis bezüglich Unterschiede im Verhalten von DataRowView zwischen ADO.NET 1.1 und ADO.NET 2.0.
Folgender Code
DataTable tbl = new DataTable("MeineTabelle"); // Tabelleneigenschaften festlegen tbl.Columns.Add("Spalte1", typeof(string)); tbl.Columns.Add("Spalte2", typeof(string)); // Daten in Tabelle einfügen tbl.Rows.Add(new Object[] { "AAA", "aaaaaa" }); tbl.Rows.Add(new Object[] { "BBB", "bbbbbb" }); DataView vue = new DataView(tbl); // aufsteigend sortieren vue.Sort = "Spalte2 ASC"; // erste Zeile der DataView auswählen und erste Spalte ausgeben DataRowView row = vue[0]; Console.WriteLine(row["Spalte1"]); // absteigen sortieren vue.Sort = "Spalte2 DESC"; // vorher gewählte Zeile erneut ausgeben Console.WriteLine(row["Spalte1"]);
Laut Sceppa ist row in ADO.NET 1.1 ein Verweis auf ein DataRow-Objekt, was dazu führt, dass die geänderte Sortierung keine Wirkung auf die Ausgabe hat.
D.h. in ADO.NET 1.1 würde obiger Code folgende Zeilen ausgeben:
AAA
AAAIn ADO.NET 2.0 soll row hingegen ein Verweis auf einen Eintrag in der DateView sein. Das führt dazu, dass row immer noch auf die erste Zeile der DataView zeigt, welche sich aber durch die Änderung der Sortierung selbst auch geändert hat. Die Ausgabe soll in ADO.NET 2.0 also so lauten:
AAA
BBBLeider bekomme ich mit Visual Studio 2008 Express diese Behauptung nicht nachvollzogen. Bei mir kommt es immer zur ersten Ausgabe, also zweimal "AAA". Habe es auch schon mit Zielsystem .NET 2.0 versucht.
Stimmt die Behauptung von Sceppa bzw. was mache ich falsch?
Vorab schon mal Danke fürs Lesen.