【问题标题】:DataTable.Compute not workingDataTable.Compute 不工作
【发布时间】:2012-12-10 11:09:43
【问题描述】:

我正在使用DataTable.Compute() 方法,但是得到了

" 聚合参数中的语法错误:需要单个列 带有可能的“子”限定符的参数。 "

我的代码:

  int x = Convert.ToInt32(DataSet1.Tables[0].
       Compute("SUM(Convert([qty],'System.Int32'))","[code] = 'ABC'"));

这里的代码是数据表的列,正在读取数量的总和。但我认为错误可能是因为 qty 的类型为string 并且无法转换为 int 类型,但不确定。

期待解答并提前致谢。

【问题讨论】:

    标签: c# datatable dataset


    【解决方案1】:

    最好通过这样做来尝试 linq

    int quantitysum= dt.Rows.Where(dr=>((string)dr["code"]) == "ABC") 
                                 .Select(dr=>(int)dr["qty"]).Sum();
    

    【讨论】:

    • thnx.. 我用过:int quantitysum = dt.Select().AsEnumerable().Where(dr => ((string)dr["code"]) == "ABC")。 Select(dr => (int)dr["qty"]).Sum();
    【解决方案2】:

    Vinod 不要将您的数量与System.Int32 进行比较。随便写

    Object Result = DataSet1.Table[0].Compute("SUM(qty)","code = 'ABC'");
    

    然后您可以在转换为integer 后使用Object

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-29
      • 2016-07-16
      • 2012-01-15
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      • 2021-01-10
      • 1970-01-01
      相关资源
      最近更新 更多