【问题标题】:VB.Net DataTable.Select - Sort expression syntaxVB.Net DataTable.Select - 排序表达式语法
【发布时间】:2017-09-03 20:13:52
【问题描述】:

我需要从 DataTable 中选择行并按“Field1 / Field2”对它们进行排序

我试过这段代码:

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

但我收到错误消息,提示“FirstNum/SecondNum”列不存在。

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

【问题讨论】:

    标签: vb.net sorting datatable


    【解决方案1】:

    我认为 select 方法不够聪明,无法在现场进行计算。另一种解决方法是将计算列添加到您的数据表并将其用作排序列

    【讨论】:

    【解决方案2】:

    尝试将每一列放在括号内

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

    【讨论】:

    • 我现在无法测试,我会尽快让你知道它是否有效
    • 对不起,它继续给出同样的错误,即使有括号
    【解决方案3】:

    根据您查看的链接,您需要先添加计算列。

    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
    

    【讨论】:

    • 谢谢,但我已经在使用这种解决方法(你没有看到我的编辑吗?)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 2012-08-30
    • 2010-11-11
    • 2018-02-19
    • 2010-11-12
    • 2012-01-13
    相关资源
    最近更新 更多