请教关于dataset的问题.
1.如何找到对应时间段的记录
2.如何对某列进行求和,求最大值.
3.如何对单号进行统计?

解决方案 »

  1.   

    主要借助DataTable的Select()筛选方法和Compute()计算方法
      

  2.   

    Compute,如何统计分组信息?
    如 select count(distinct code) from tb
      

  3.   

    .Compute("count(distinct code)","")---------------------
    Compute()计算用来传递筛选条件的当前行上的给定表达式。
    [Visual Basic]
    Public Function Compute( _
       ByVal expression As String, _
       ByVal filter As String _
    ) As Object
    [C#]
    public object Compute(
       string expression,
       string filter
    );
    [C++]
    public: Object* Compute(
       String* expression,
       String* filter
    );
    [JScript]
    public function Compute(
       expression : String,
       filter : String
    ) : Object;
    参数
    expression 
    要计算的表达式。 
    filter 
    要限制在表达式中进行计算的行的筛选器。 
    返回值
    Object,设置为计算结果。
    备注
    expression 参数需要聚合函数。例如,以下是合法表达式:
    Count(Quantity)
    但是以下表达式不合法:
    Sum (Quantity * UnitPrice)
    如果必须针对两列或多列执行操作,则应该创建 DataColumn,并将它的 Expression 属性设置为适当的表达式,然后针对结果列使用聚合表达式。在这种情况下,假定有一个名为“total”的 DataColumn,并且 Expression 属性设置为:
    “Quantity * UnitPrice”
    Compute 方法的表达式参数将为:
    Sum(total)
    第二个参数 filter 确定在表达式中使用哪些行。例如,如果该表包含名为“colDate”的日期列,则可用以下表达式限制这些行:
    colDate > 1/1/99 AND colDate < 17/1/99
    有关为这两个参数创建表达式的规则,请参见 DataColumn 类的 Expression 属性。
    示例
    [Visual Basic, C#] 以下示例针对识别号为 5 的销售人员,对名为“Total”的列的值求和。
    [Visual Basic] 
    Private Sub ComputeBySalesSalesID(ByVal myDataSet As DataSet)
        ' Presumes a DataTable named "Orders" that has a column named "Total."
        Dim myTable As DataTable
        myTable = myDataSet.Tables("Orders")
        ' Declare an object variable.
        Dim objSum As Object
        objSum = myTable.Compute("Sum(Total)", "EmpID = 5")
     End Sub
    [C#] 
    private void ComputeBySalesSalesID(DataSet myDataSet){
        // Presumes a DataTable named "Orders" that has a column named "Total."
        DataTable myTable;
        myTable = myDataSet.Tables["Orders"];
        // Declare an object variable.
        object objSum;
        objSum = myTable.Compute("Sum(Total)", "EmpID = 5");
     }