我在使用column2(我使用的列的名称)对datagridview进行排序时遇到了问题
我在列中使用了datetime类型值,现在我想使用以下命令对网格进行排序(命名为conv_msg_grid)
conv_msg_grid.Sort(Column2, System.ComponentModel.ListSortDirection.Ascending)
但它给出了一个错误“对象必须是String类型。”
它有什么问题???
请帮帮我.....
答案 0 :(得分:1)
好像你的表中有不一致的数据类型。您的第一个项目是字符串类型,但其中一些是date类型。因此,当您尝试排序并且您遇到的字符串不是字符串时会发生此错误。
要解决这个问题,您有两种选择。
在排序之前,将所有内容转换为datetime(或字符串)值。 (如果允许用户添加日期,这是更好的选择)
将数据插入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
答案 1 :(得分:0)
conv_msg_grid.Sort(conv_msg_grid.columns(2),System.ComponentModel.ListSortDirection.Ascending)
Kalunche