<%@ Page Language="VB" AutoEventWireup="True" Debug="true"%> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> <html> <script runat="server"> dim MyConnection as OleDbConnection dim cmdSelect as OleDbCommand dim dtrReader as OleDbDataReader dim runningTotal as double = 0 Sub Page_Load(sender As Object, e As EventArgs) MyConnection = New OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" + Server.MapPath(".")+"/db/data.mdb") If Not IsPostBack Then BindGrid() End If End Sub Sub BindGrid() Dim MyCommand As OleDbDataAdapter = new OleDbDataAdapter("SELECT name,count FROM [min2]", MyConnection) Dim DS As DataSet = new DataSet() MyCommand.Fill(DS,"min2") MyDataGrid.DataSource =DS.Tables("min2").DefaultView MyDataGrid.DataBind() End Sub Sub MyDataGrid_ItemDataBound( sender as object, e as DataGridItemEventArgs ) if (e.Item.ItemType = ListItemType.Item or e.Item.ItemType = ListItemType.AlternatingItem) then CalcTotal( e.Item.Cells(1).Text ) 'e.Item.Cells(1).Text = string.Format("{0:c}", Convert.ToDouble(e.Item.Cells(1).Text)) else if(e.Item.ItemType = ListItemType.Footer ) then e.Item.Cells(0).Text="Total" e.Item.Cells(1).Text = runningTotal e.Item.Cells(1).HorizontalAlign = HorizontalAlign.Right end if End Sub Sub CalcTotal(_price) runningTotal += Double.Parse(_price) End Sub </script> <body> <Form runat="server"> <asp:DataGrid id="MyDataGrid" runat="server" Width="300" AutoGenerateColumns="False" CellPadding="4" CellSpacing="0" BorderStyle="Solid" BorderWidth="1" ItemStyle-Font-Name="Verdana" ItemStyle-Font-Size="9pt" HeaderStyle-Font-Name="Verdana" HeaderStyle-Font-Size="10pt" HeaderStyle-Font-Bold="True" HeaderStyle-ForeColor="White" HeaderStyle-BackColor="Blue" FooterStyle-Font-Name="Verdana" FooterStyle-Font-Size="10pt" FooterStyle-Font-Bold="True" FooterStyle-ForeColor="White" FooterStyle-BackColor="Blue" ShowFooter="True" OnItemDataBound="MyDataGrid_ItemDataBound"> <Columns> <asp:BoundColumn HeaderText="Title" DataField="name"/> <asp:BoundColumn HeaderText="Price" DataField="count" ItemStyle-HorizontalAlign="Right" HeaderStyle-HorizontalAlign="Center" /> </Columns> </asp:DataGrid> </Form> </body> </html>
计算DataSet中一列数据("InNumber")的和
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<html>
<script runat="server">
dim MyConnection as OleDbConnection
dim cmdSelect as OleDbCommand
dim dtrReader as OleDbDataReader
dim runningTotal as double = 0 Sub Page_Load(sender As Object, e As EventArgs)
MyConnection = New OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" + Server.MapPath(".")+"/db/data.mdb") If Not IsPostBack Then
BindGrid()
End If
End Sub Sub BindGrid()
Dim MyCommand As OleDbDataAdapter = new OleDbDataAdapter("SELECT name,count FROM [min2]", MyConnection)
Dim DS As DataSet = new DataSet()
MyCommand.Fill(DS,"min2")
MyDataGrid.DataSource =DS.Tables("min2").DefaultView
MyDataGrid.DataBind()
End Sub Sub MyDataGrid_ItemDataBound( sender as object, e as DataGridItemEventArgs )
if (e.Item.ItemType = ListItemType.Item or e.Item.ItemType = ListItemType.AlternatingItem) then
CalcTotal( e.Item.Cells(1).Text )
'e.Item.Cells(1).Text = string.Format("{0:c}", Convert.ToDouble(e.Item.Cells(1).Text))
else if(e.Item.ItemType = ListItemType.Footer ) then
e.Item.Cells(0).Text="Total"
e.Item.Cells(1).Text = runningTotal
e.Item.Cells(1).HorizontalAlign = HorizontalAlign.Right
end if
End Sub Sub CalcTotal(_price)
runningTotal += Double.Parse(_price)
End Sub
</script>
<body>
<Form runat="server">
<asp:DataGrid id="MyDataGrid" runat="server"
Width="300"
AutoGenerateColumns="False"
CellPadding="4"
CellSpacing="0"
BorderStyle="Solid"
BorderWidth="1"
ItemStyle-Font-Name="Verdana"
ItemStyle-Font-Size="9pt"
HeaderStyle-Font-Name="Verdana"
HeaderStyle-Font-Size="10pt"
HeaderStyle-Font-Bold="True"
HeaderStyle-ForeColor="White"
HeaderStyle-BackColor="Blue"
FooterStyle-Font-Name="Verdana"
FooterStyle-Font-Size="10pt"
FooterStyle-Font-Bold="True"
FooterStyle-ForeColor="White"
FooterStyle-BackColor="Blue"
ShowFooter="True"
OnItemDataBound="MyDataGrid_ItemDataBound">
<Columns>
<asp:BoundColumn HeaderText="Title" DataField="name"/>
<asp:BoundColumn HeaderText="Price" DataField="count"
ItemStyle-HorizontalAlign="Right"
HeaderStyle-HorizontalAlign="Center" />
</Columns>
</asp:DataGrid>
</Form>
</body>
</html>
在绑定前对dataset里求和比较好
问题是怎样把结果显示在页脚栏?
DataGrid1.Columns(2).FooterText =
String.Format("{0:#,0}", objds.Tables(0).Compute("sum(字段)", ""))