2013-03-09 57 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

相關問題