Mengurutkan berdasarkan tanggal dengan tampilan data di VB.NET

Hai dan terima kasih sebelumnya:

Jadi saya mencoba menarik tabel dari database SQL dan mengurutkannya pada kolom "Tanggal Dari" (DtFr), yang mewakili awal sewa. Saya pikir akan semudah ini:

Dim XmlReader As New XmlNodeReader(xmlDoc)
Dim ds As New DataSet
ds.ReadXml(XmlReader)
myDt = ds.Tables("Cam")
If myDt IsNot Nothing AndAlso myDt.Rows.Count > 0 Then
    Dim dv As New DataView(myDt)
    dv.Sort = "DtFr ASC"
    myDt = dv.ToTable(False, "Id", "Name", "Amount", "Unpaid", "DtFr")
End If

Namun seperti yang sudah Anda duga, ini tidak berfungsi (pengguna baru, tidak dapat memposting gambar, itu hanya gambar tanggal yang rusak).

masukkan deskripsi gambar di sini

Mungkinkah karena pada suatu saat selama pengambilan data, datanya tidak lagi bertipe Date dan berupa string atau semacamnya? Jika saya menggunakan tanggal yang lebih sederhana, seperti 1/1/2012, 2/1/2012, 3/1/2012 atau 1/1/2012, 1/2/2012, 1/3/2012 dll. Anda akan melihat di atas, jika saya memiliki bulan yang bervariasi, itu akan mengaturnya.

Saya sudah mencoba mengacaukan budaya, berpikir mungkin saja mengurutkannya pada bulan-bulan sebelum tahun tidak berhasil... Saya bingung, bantuan, ide, atau arahan apa pun ke sesuatu yang bermanfaat akan sangat bagus.

Sangat Dihargai, Josh

EDIT: Anda jenius, terima kasih banyak. Anda benar tentang nilai string. Saya menambahkan kolom data yang disebut sortDtFr ke tabel data dan memberikannya System.DateTime sebagai tipe data dan mengulangi baris-baris yang mengatur nilai kolom baru sama dengan yang lama yang dipilih sebagai Tanggal. Berikut kodenya bagi yang berminat:

ds.ReadXml(XmlReader)

myDt = ds.Tables("Cam")
myDt.Columns.Add(New DataColumn("sortDtFr", System.Type.GetType("System.DateTime")))
For Each row As DataRow In myDt.Rows
    row("sortDtFr") = CDate(row("DtFr"))
Next
If myDt IsNot Nothing AndAlso myDt.Rows.Count > 0 Then
    Dim dv As New DataView(myDt)
    dv.Sort = "sortDtFr ASC"
    myDt = dv.ToTable(False, "Id", "Name", "Amount", "Unpaid", "DtFr", "sortDtFr")
End If

person omgoshjosh    schedule 31.05.2012    source sumber


Jawaban (1)


Alasan mengapa catatan Anda diurutkan seperti itu adalah karena tipe data dari DataColumn dari DataTable Anda (Cam) adalah System.String (< em>secara default). Coba ubah ke System.DateTime.

person John Woo    schedule 01.06.2012