在我的DGV中,我在列(1)中有日期列表:
11-Sep-2014
11-May-2011
11-Jan-2014
11-Mar-2014
12-Sep-2010
如何获得这样的降序结果:
11-Sep-2014
11-Mar-2014
11-Jan-2014
11-May-2011
12-Sep-2010
Column(1)不是DateTime类型,而是SortText类型,我必须设置这样的字符串。可以排序吗?
我尝试过使用代码:
DGV.Columns(1).SortMode = DGV.Sort(DGV.Columns(1), System.ComponentModel.ListSortDirection.Descending)
但它没用,它没有按日期排序:(
这是我的DGV:
Okeh,这是我的DGV代码:
Imports System.Data.OleDb
Public Class LapTransaksiSimpanan
Public Sub Koneksi()
str = "provider=microsoft.jet.oledb.4.0;data source=dbkoperasi.mdb"
Conn = New OleDbConnection(str)
If Conn.State = ConnectionState.Closed Then
Conn.Open()
End If
End Sub
Sub TampilGrid()
da = New OleDbDataAdapter("select * from LapTransaksiSimpanan", Conn)
ds = New DataSet
da.Fill(ds, "LapTransaksiSimpanan")
DGV.DataSource = ds.Tables("LapTransaksiSimpanan")
'on the below I wanna to sort the column, my code below is useless :(
DGV.Sort(DGV.Columns(1), System.ComponentModel.ListSortDirection.Descending)
DGV.Columns("ID_Simpanan").Width = 120
DGV.Columns("NAK").Width = 37
DGV.Columns("Tanggal").Width = 75
DGV.Columns("Jumlah").Width = 110
End Sub
Private Sub Setoran_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Call Koneksi()
Call TampilGrid()
End Sub
结束班
答案 0 :(得分:0)
storing
和displaying
数据之间存在差异。
您需要更改数据库表架构。 Tanggal
列应为date
或datetime
类型。修复此问题后,使用自定义格式显示日期非常简单:
Me.DGV.Columns("Tanggal").DefaultCellStyle.Format = "dd-MMM-yyyy"
如果由于某种原因无法更改架构,则需要通过实施IComparer来创建自定义比较器。 this MSDN page底部有一个例子。
答案 1 :(得分:0)
Dim tnd As Date
For Me.i = 0 To X1.RowCount - 2
tnd = X1.Item(1, i).Value
X1.Item(6, i).Value = tnd.ToOADate.ToString
Next
X1是DataGridView 第1栏的日期为1987年5月4日 第6列将作为MS日期编号以整数形式计算,并且必须转换为字符串。 确保X1网格已启用排序 现在,只需单击第6列标题即可进行排序。 希望能奏效。