邦定数据显示结果如下a_type    a_count
苹果         10
苹果         20
苹果         5
香蕉         10
其他          6
其他          6我想在某类下加一条 小计记录 ,结果如下a_type    a_count
苹果         10
苹果         20
苹果         5
小计         35      //统计相同类型的数量
香蕉         10
小计         10      //统计相同类型的数量
其他          6
其他          6
小计          12     //统计相同类型的数量改如何实现,谢谢了

解决方案 »

  1.   

    Function fill()
            Dim sqlty As String
            Dim sqlcom As SqlCommand
            sqlty = Session("Query")
            sqlcon = New SqlConnection(ConfigurationSettings.AppSettings("Conn"))
            adapter = New SqlDataAdapter(sqlty, sqlcon)
            Dim adapter1 As SqlDataAdapter
            adapter1 = New SqlDataAdapter("select type_code from captype", sqlcon)
            Dim data As New DataSet
            adapter.Fill(data, "capdata")
            adapter1.Fill(data, "captype")
           
            Dim read As SqlDataReader
            Dim i As Integer
            Dim s As String
            Dim objsum As Object
           
            Dim custViewa As DataView = New DataView(data.Tables("capdata"), "", _
            "type_code", DataViewRowState.CurrentRows) '便于排序,插入
          
            Dim mydr As DataRow
            Dim sum As Integer
            For i = 0 To data.Tables("captype").Rows.Count - 1
                s = data.Tables("captype").Rows(i).Item(0).ToString()
                Dim rowIndex As Integer = custViewa.Find(s.Trim()) '查找如果找到,则定位在要查找的记录的索引数
                If rowIndex = -1 Then '如果没有找到则得到-1
                Else
                    objsum = data.Tables("capdata").Compute("Sum(cap_sets)", "type_code='" & s.Trim() & "'") '得到type_code字段的和
                    mydr = custViewa.Table().NewRow()
                    mydr(0) = custViewa(rowIndex)("type_code").ToString().Trim() '得到数据
                    mydr(1) = custViewa(rowIndex)("type_name").ToString().Trim()
                    mydr(2) = "合计"
                    If objsum.ToString() = "" Then
                    Else
                        mydr(3) = objsum.ToString()
                        sum = sum + Convert.ToInt32(objsum)
                    End If                custViewa.Table().Rows.Add(mydr) '添加一行            End If        Next
            viewstate("sum") = sum
            'mydr = custViewa.Table().NewRow()
            'mydr(0) = ""
            'mydr(1) = "合计"
            'mydr(2) = ""
            'mydr(3) = sum.ToString()
            'custViewa.Table().Rows.Add(mydr) '最后添加一行合计        custViewa.Sort = "type_code" '按type_code 排序
            typeGrid.DataSource = custViewa '绑定        typeGrid.DataBind()    End Function
      

  2.   

    select * from 
    (
    select a_type,a_typeas tname,a_count from tbName t1
    union 
    select a_type,'小計'  as tname,sum(a_count) as a_count from tbName t2 group by a_type
    ) a
     order by a_type
      

  3.   

    如何在itemcreate写事件,能具体点吗
      

  4.   

    不用有兩種方法
    一:不邦定方法:
     像asp一樣直接輸出
      string strOldType = "";
      int iTotal = 0;
      string strNewType = "";
      if(Rs.Read())
      {
        strNewType = Rs["a_type"].ToString();
        if(strNewType!=strOldType && strOldType!="")
        {
          Respponse.Write("<td>小計:</td><td>" + iTotal.ToString() + "</td>");
        }
        else
        {
          iTotal +=Int32.Parse(Rs["a_count"]);
          Respponse.Write("<td>" + Rs["a_type"] + "</td><td>" + Rs["a_count"]  + "</td>");
          strOldType = strNewType
        }
       }  
    二:采用DataTable
      具體操作跟上差不多了
        可以邦定
      

  5.   

    helimin19(冷風.net) 的比较好
      

  6.   

    helimin19(冷風.net) 的好!!!!
      

  7.   

    helimin19(冷風.net) 的比较好