dataset nach bestimter spalte sortieren

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    dataset nach bestimter spalte sortieren

    Hallo Leute,
    ich suche eine guten Weg die Daten aus einem dataset in sortierter reihenfolge auszulesen.

    In dem dataset gib es die Spalte "Rate". Wenn ich die daten per for to schleife durchlaufe, bekomme ich ja das ergebniss, so wie die daten in den table
    geschrieben wurden.

    zb.

    1
    3
    2

    Jetzt möchte ich aber gerne das ganze sortiert rausbekommen.

    Ist das hier ev. ein Weg?

    VB.NET-Quellcode

    1. Dim dv As New DataView(ProjektdatenbankDataSet.Zahlungsplan)
    2. dv.Sort = "Rate ASC"
    3. For Each row As DataRowView In dv
    4. MessageBox.Show(CStr(row("Rate")))
    5. Next

    "Mann" lernt mit seinen Projekten.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „kiter20“ ()

    Zu dem Zeitpunkt, wenn ich die daten benötige, ist die binding source aber nicht greifbar. ?? (Form geschlossen bzw. nie geöffnet)

    Ich möchte mir zb. die rows für einen speziellen Kunden holen.

    VB.NET-Quellcode

    1. dv.RowFilter = "Bauvorhabensnummer =" & currentView.Bauvorhabensnummer


    currentView.Bauvorhabensnummer ist nur zum testen. Der code wird nachher an einer anderen stelle verwendet und dort verwende ich die Nummer direkt und nicht aus der bindingsource.
    "Mann" lernt mit seinen Projekten.
    also das eigentümliche ist, dass in Dataview, oder später inne modernere Bindingsource keine DataRows drinne sind, sondern Datarowviews.
    Ein DataRowview ist eine Art Verweis auf eine Datarow, und die Datarow kann vonne .Row-Property abgerufen werdne. Dann noch casten, und man hats typisiert.
    Also dasselbe, was hier für die aktuell ausgewählte gemacht wird

    VB.NET-Quellcode

    1. dim rw=DirectCast(DirectCast(BindingSource.Current,DataRowView).Row,mytypedRow)
    kann man auch in einer Schleife durchziehen, denn sowohl BindingSource als auch Dataview sind ja IEnumerable (bitte überzeug dich im ObjectBrowser davon)

    VB.NET-Quellcode

    1. For Each drv As DataRowView In dv
    2. MessageBox.Show(DirectCast(drv.Row,ZahlungsplanRow).Rate)
    3. Next
    also bitte typisiert bleiben, nicht wieder anfangen, mit CStr und String-Schlüsseln iwelche Properties nun vom DataRowview abrufen.
    Einfach nur die Row selbst vom DataRowview abrufen, casten, und typisiert gehts weiter.