2017-04-08 67 views
0

我需要从数据表中选择行和“字段1 /字段2”进行排序VB.Net DataTable.Select - 排序表达式语法

我试过这段代码:

Using DT_Tmp As DataTable = DT.Select("", "FirstNum/SecondNum desc").CopyToDataTable 

,但我得到的错误说那个专栏“FirstNum/SecondNum”不存在。

编辑
到目前为止,我正在使用(作为解决方法)临时表,我添加一个字段,我存储的比例,我使用该字段排序表。

回答

0

我不认为选择方法足够聪明,可以在现场进行计算。另一个解决方法是计算列添加到您的数据表,并用其作为排序列

+0

这里https://msdn.microsoft.com/it-it/library/zk13kdh0(v=vs.71).aspx这里https://msdn.microsoft.com/it-it/library /system.data.datacolumn.expression(v=vs.71).aspx我读过它的可能 – genespos

0

尝试把每列内根据您看了链接支架

Using DT_Tmp As DataTable = DT.Select("", "[FirstNum]/[SecondNum] desc").CopyToDataTable 
+0

我现在无法测试它,如果它能尽快发挥作用,我会通知您 – genespos

+0

对不起,它会继续给出相同的错误,即使括号 – genespos

0

,你需要添加caluculated列首先。

csortnum= New DataColumn 
With csortnum 
    .DataType = System.Type.GetType("System.Decimal") 
    .ColumnName = "sortcolumn" 
    .Expression = "FirstNum/SecondNum" 
End With 
DT.add(csortnum) 
Using DT_Tmp As DataTable = DT.Select("", csortnum desc").CopyToDataTable 
+0

谢谢,但我已经在使用这种解决方法(你没有看到我的编辑?) – genespos