邦定数据显示结果如下a_type a_count
苹果 10
苹果 20
苹果 5
香蕉 10
其他 6
其他 6我想在某类下加一条 小计记录 ,结果如下a_type a_count
苹果 10
苹果 20
苹果 5
小计 35 //统计相同类型的数量
香蕉 10
小计 10 //统计相同类型的数量
其他 6
其他 6
小计 12 //统计相同类型的数量改如何实现,谢谢了
苹果 10
苹果 20
苹果 5
香蕉 10
其他 6
其他 6我想在某类下加一条 小计记录 ,结果如下a_type a_count
苹果 10
苹果 20
苹果 5
小计 35 //统计相同类型的数量
香蕉 10
小计 10 //统计相同类型的数量
其他 6
其他 6
小计 12 //统计相同类型的数量改如何实现,谢谢了
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
(
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
一:不邦定方法:
像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
具體操作跟上差不多了
可以邦定