Nach Datum sortieren in DataGridView

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von reustli.

    Nach Datum sortieren in DataGridView

    Hallo Zusammen
    Ich habe vor einiger Zeit einmal dasselbe Problem gepostet. Nun habe ich im Internet rumgesucht und auch Antworten zum Sortieren einer Datumsspalte in einem DataGridView gefunden, jedoch funktioniert das beim besten Willen nicht.
    Folgendes:
    Das DataGridView wird mittels For Each Schleife abgefüllt, Daten sind in einer normalen Textdatei. Am Schluss sieht das so aus.

    VB.NET-Quellcode

    1. Dim arr(3) As String
    2. arr(0) = spl(0)
    3. arr(1) = CDate(spl(1))
    4. arr(2) = alter2
    5. arr(3) = spl(2)
    6. DataGridView1.Rows.Add(arr)

    In der 2. Spalte steht das Datum (z.B. 02.09.1998)
    Im Form_Load setze ich nach dem abfüllen des DataGridView die zweite Spalte zu Date.

    VB.NET-Quellcode

    1. DataGridView1.Columns(1).ValueType = GetType(Date)


    Problem: Er sortiert einfach nicht korrekt nach Datum, reine Zahlenwerte und Strings sind kein Problem, nur mit dem Datum hat er ein riesen Problem?!?!
    Hallo singu
    Ja, am besten wäre, wenn er automatisch sortieren würde. Habe das in den Eigenschaften der DataGridView auch auf Automatic eingestellt für diese Spalte.
    Wenn ich doppelt auf die Datum-Column klicke sortiert er einfach entweder aufsteigend oder absteigend, aber er sortiert falsch ...
    @singu; hat bestens geklappt.
    Nachtrag, kurze Erklärung:
    Wenn man Datumswerte in einem DataGridView hat, sollte man die DataGridView NICHT so abfüllen (sonst ist kein Sortieren nach Datum möglich):

    VB.NET-Quellcode

    1. Dim arr(3) As String
    2. arr(0) = spl(0)
    3. arr(1) = CDate(spl(1))
    4. arr(2) = alter2
    5. arr(3) = spl(2)
    6. DataGridView1.Rows.Add(arr)


    sondern so:

    VB.NET-Quellcode

    1. With DataGridView1.Rows
    2. .Add(spl(0), CDate(spl(1)), alter2, spl(2))
    3. End With

    und am Ende dann noch die entsprechende Spalte mit Date deklarieren. In meinem Fall war das die zweite Spalte.

    VB.NET-Quellcode

    1. DataGridView1.Columns(1).ValueType = GetType(Date)

    Dann funktioniert das Sortieren ohne Probleme.