2013-03-09 58 views
1

我有一个问题,同时排序由COLUMN2 datagridview的(ⅰ使用的列的名称)如何按日期时间类型的列值对datagridview进行排序。

我用在列日期时间类型的值和现在我想通过使用下面的命令

到电网(命名为conv_msg_grid)排序
conv_msg_grid.Sort(Column2, System.ComponentModel.ListSortDirection.Ascending) 

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

它有什么问题?

请帮我.....

回答

1

好像你在你的表不一致的数据类型。您的第一个项目是字符串类型,但其中一些是日期类型。所以当你尝试排序时,你碰到了一个不是字符串的东西,这个错误就会发生。

要解决它,你有两种选择。

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

  2. 将数据插入到DatagridView中时,确保所有值都是DateTime(或字符串)。 (这是更好的选择,如果用户不能在键入日期)

要做到(或字符串)选项简单地删除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 
0

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

Kalunche

相关问题