如何按日期时间类型的列值对datagridview进行排序。

时间:2013-03-09 12:15:48

标签: vb.net datagridview

我在使用column2(我使用的列的名称)对datagridview进行排序时遇到了问题

我在列中使用了datetime类型值,现在我想使用以下命令对网格进行排序(命名为conv_msg_grid)

conv_msg_grid.Sort(Column2, System.ComponentModel.ListSortDirection.Ascending)

但它给出了一个错误“对象必须是String类型。”

它有什么问题???

请帮帮我.....

2 个答案:

答案 0 :(得分:1)

好像你的表中有不一致的数据类型。您的第一个项目是字符串类型,但其中一些是date类型。因此,当您尝试排序并且您遇到的字符串不是字符串时会发生此错误。

要解决这个问题,您有两种选择。

  1. 在排序之前,将所有内容转换为datetime(或字符串)值。 (如果允许用户添加日期,这是更好的选择)

  2. 将数据插入DatagridView时,请确保所有值都是DateTime(或字符串)。 (如果用户无法输入日期,这是更好的选择)

  3. 要执行(或字符串)选项,只需删除convert.ToDateTime并对值执行ToString。

    Dim Column2 As DataGridViewColumn = DataGridView1.Columns(0)
    For Each r As DataGridViewRow In DataGridView1.Rows
        r.Cells(Column2.Index).Value = Convert.ToDateTime(r.Cells(Column2.Index).Value)
    Next
    

答案 1 :(得分:0)

conv_msg_grid.Sort(conv_msg_grid.columns(2),System.ComponentModel.ListSortDirection.Ascending)

Kalunche

相关问题