2016-01-06 63 views
0

對於這個項目,我必須通過某個列,'Checked'列對DataTable進行排序。這樣做可以讓我查看每行檢查是否存在異常的順序。目前,這一列看起來是這樣的: -DataTable沒有排序C#

Checked 
------- 
0 
2 
3 
4 
6 
7 
10 
1 
11 
12 
5 
8 
9 

我遇到的問題是表格不按此列排序。因此,它會檢查不需要檢查的行。我目前使用的代碼是: -

public void setTableData(DataTable table) 
{ 
    table.DefaultView.Sort = "Checked ASC"; 
    table = table.DefaultView.ToTable(); 
    tblProduct.DataSource = table; 
} 

尋找不同的網站和其他程序員的建議後,我仍然無法看到有問題的代碼。是什麼原因導致表不可用?

+0

什麼類型的對象是'tblProduct'?這可能是你的排序工作正常,但設置'DataSource'後不刷新。 –

+0

tblProduct是一個DataGridView對象。我在那裏添加了一個刷新命令,它仍然不起作用。 –

+0

刷新不會做你打算在這裏做的事情。在將數據源設置爲表之前,嘗試將數據源設置爲空。否則,您將需要進入BindingSource更改。 –

回答

0

什麼是你的Checked價值?是bool

的DataTable中對數據進行排序,你可以試試這個:

DataView dv = table.DefaultView; 

    dv.Sort = "Checked desc"; 
    DataTable sortedDT = dv.ToTable(); 

您的排序代碼是真實的,但我們不能編譯的代碼。我認爲它出現在Checked值是錯誤的數據。 你能發佈Checked數據嗎?

+1

根據問題中的示例數據,它看起來不是'bool'。 – Tim

+0

這是一個「整數」列 –