您的位置:首页 > 编程语言 > ASP

sql Asp.net 生成 小计 合计

2012-10-23 23:19 393 查看
数据如下:(sql 2008 R2版本)



页面显示如下:



sql代码如下:

select [name],[groupName],SUM(total) as totalCount,GROUPING(name),GROUPING(groupName)from testTable group by name,groupName with rollup

执行结果如下:



后台cs文件代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Bind();
}
}
public void Bind()
{
SqlConnection conn = new SqlConnection("server=HPF-PC;database=aa;uid=sa;pwd=sasa");
DataTable dt = new DataTable();
string sql = "select [name],[groupName],SUM(total) as totalCount,GROUPING(name),GROUPING(groupName) from testTable group by name,groupName with  rollup";
SqlDataAdapter da = new SqlDataAdapter(sql,conn);
da.Fill(dt);
this.gvShow.DataSource = dt;
this.gvShow.DataBind();
for (int i = 0; i < gvShow.Rows.Count-1; i++)
{
if (((Label)(gvShow.Rows[i].FindControl("lblgroup"))).Text=="")
{
gvShow.Rows[i].BackColor = System.Drawing.Color.LightGreen;
((Label)(gvShow.Rows[i].FindControl("lblName"))).Text = "小计:";
}
}
((Label)(gvShow.Rows[gvShow.Rows.Count-1].FindControl("lblName"))).Text = "总计:";
gvShow.Rows[gvShow.Rows.Count - 1].BackColor = System.Drawing.Color.Green;
}
aspx文件代码:
<asp:GridView runat="server" Width="600px" ID="gvShow"
AutoGenerateColumns="false" >
<Columns>
<asp:TemplateField HeaderText="姓名">
<ItemTemplate>
<asp:Label runat="server" ID="lblName" Text='<%#Eval("name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="组名">
<ItemTemplate>
<asp:Label runat="server" ID="lblgroup" Text='<%#Eval("groupname") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="总计">
<ItemTemplate>
<asp:Label runat="server" ID="lbltotal" Text='<%#Eval("totalcount") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: