2016-01-06 61 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

这是一个“整数”列 –