Subject: Help with totals
Posted By: rsm42 Post Date: 12/15/2006 12:18:11 PM
Hi,

I'm working on a checkout page using asp.net 1.1. and vb2003. In my checkout page, I need to

calculate the total of the items currently in the cart. What's the best way to do this ? An

examples would help - thanks. Here's my code for reference :

<%@ Page Language="VB" Debug="true" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">

    Function DisplayCart() As System.Data.IDataReader
    
                 Dim strConnString As String =

ConfigurationSettings.AppSettings.Get("ConnectionString")
                 strConnString = String.Format(strConnString,

Server.MapPath("\db\nwguitars.mdb"))
                 Dim dbConnection As System.Data.IDbConnection = New

System.Data.OleDb.OleDbConnection(strConnString)
    
    
                 Dim queryString As String = "SELECT tblCartItems.intCartitemID,

tblCartItems.intProductID, tblMake.strMake, tblProducts.strProductName, "& _
                 "tblType.strTypeDetails, tblColour.strColour, tblCartItems.intQuantityOrder,

tblProducts.curSalePrice FROM tblType INNER JOIN "& _
                 "((tblMake INNER JOIN (tblColour INNER JOIN tblProducts ON tblColour.intColourID

= tblProducts.intColourID) ON tblMake.intMakeID = tblProducts.intMakeID) "& _
                 "INNER JOIN tblCartItems ON tblProducts.intProductID =

tblCartItems.intProductID) ON tblType.intTypeID = tblProducts.intTypeID WHERE

[tblCartItems].[intCartID] = " & Session("CartID") & " ; "
    
                 Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand
                 dbCommand.CommandText = queryString
                 dbCommand.Connection = dbConnection
    
                 dbConnection.Open
                 Dim dataReader As System.Data.IDataReader =

dbCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
    
                 Return dataReader
    
                 
             End Function
    
             Sub Page_Load()
    
                 If Not IsPostback Then
    
                     CartStatus()
    
                 End If
    
             End Sub
    
    
             Sub CartStatus()
                 If Session("CartID") Is Nothing Then
                     pnlShowText.Visible = True
                     pnlShowItems.Visible = False
    
                 Else
                     pnlShowItems.Visible = True
                     pnlShowText.Visible = False
    
                     dgCart.DataSource = DisplayCart()
                     dgCart.DataBind()
                 End If
             End Sub
    
            
    
             Sub dgCart_Edit(sender As Object, e As DataGridCommandEventArgs)
                 dgCart.EditItemIndex = e.Item.ItemIndex
    
                 dgCart.Datasource = DisplayCart()
                 dgCart.DataBind()
    
                 lblCart.Text = Session("CartID")
                 lblCart.visible=True
                 btnSubmit.Visible=False
    
             End Sub
    
             Sub dgCart_Cancel(sender As Object, e As DataGridCommandEventArgs)
                 dgCart.EditItemIndex = -1
                 btnSubmit.Visible=True
    
                 dgCart.Datasource = DisplayCart()
                 dgCart.DataBind()
             End Sub
    
    
             Sub dgCart_Update(sender As Object, e As DataGridCommandEventArgs)
    
                 Dim strConnString As String =

ConfigurationSettings.AppSettings.Get("ConnectionString")
                 strConnString = String.Format(strConnString,

Server.MapPath("\db\nwguitars.mdb"))
                 Dim dbConnection As System.Data.IDbConnection = New

System.Data.OleDb.OleDbConnection(strConnString)
    
                 Dim intCartitemID As Integer
                 Dim txtQuantity As TextBox
                 Dim intQuantity As Integer
    
                 intCartitemID = dgCart.DataKeys(e.Item.ItemIndex)
                 txtQuantity = e.Item.FindControl("txtQuantity")
                 intQuantity = txtQuantity.Text
    
    
                 Dim strSQL As String = "UPDATE [tblCartItems] SET [intQuantityOrder]=@Quantity

WHERE "& _
                 "intCartitemID = @intCartitemID"
    
                 Dim dbCommand As New OleDbCommand(strSQL, dbConnection)
    
                 Dim cmd As New OleDbCommand
    
                 dbCommand.Parameters.Add("@Quantity", intQuantity)
                 dbCommand.Parameters.Add("@intCartitemID", intCartitemID)
    
                 dbConnection.Open()
                 dbCommand.ExecuteNonQuery()
                 dbConnection.Close()
    
                 dgCart.EditItemIndex = -1
                 dgCart.DataSource = DisplayCart()
                 dgCart.DataBind()
    
    
    
             End Sub
    
             Sub dgCart_Delete(Sender As Object, E As DataGridCommandEventArgs)
    
                 Dim strConnString As String =

ConfigurationSettings.AppSettings.Get("ConnectionString")
                 strConnString = String.Format(strConnString,

Server.MapPath("\db\nwguitars.mdb"))
                 Dim dbConnection As System.Data.IDbConnection = New

System.Data.OleDb.OleDbConnection(strConnString)
    
                 Dim intCartitemID As Integer
                 intCartitemID = dgCart.DataKeys(e.Item.ItemIndex)
    
                 Dim cmd As New OleDbCommand
                 Dim strSQL As String = "DELETE FROM [tblCartItems] WHERE

([tblCartItems].[intCartitemID] = @intCartitemID)"
    
                 Dim dbCommand As New OleDbCommand(strSQL, dbConnection)
                 dbCommand.Parameters.Add("@intCartitemID", intCartitemID)
                 dbCommand.Parameters("@intCartitemID").Value =

dgCart.DataKeys(CInt(E.Item.ItemIndex))
    
                 dbConnection.Open()
                 dbCommand.ExecuteNonQuery()
                 dbConnection.Close()
    
                 dgCart.DataSource = DisplayCart()
                 dgCart.DataBind()
    
             End Sub
    
    
             Sub btnSubmit_Click(sender As Object, e As EventArgs)
                 Response.Redirect("login.aspx")
             End Sub

</script>
<html>
<head>
    
    <link href="\css\liststyle.css" type="text/css" rel="stylesheet" />
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <script language="JavaScript" type="text/JavaScript">

//-->
    </script>
</head>
<body>
    <hr class="navbar" />
    <br />
    <form runat="server">
        <h2 align="center">View Cart
        </h2>
        <table height="50" width="400" align="center">
            <tbody>
                <tr>
                    <td>
                        <asp:Panel class="heading" id="pnlShowText" runat="server" Width="390px"

Height="40px">
                            <p align="center">
                                Your cart is empty - Please add an item from our shop
                            </p>
                        </asp:Panel>
                    </td>
                </tr>
            </tbody>
        </table>
        <table height="50" width="430" align="center">
            <tbody>
                <tr>
                    <td width="416">
                        <asp:Panel id="pnlShowItems" runat="server" Width="400px">
                            <div align="center">
                                <asp:DataGrid id="dgCart" runat="server"

OnUpdateCommand="dgCart_Update" OnEditCommand="dgCart_Edit" OnCancelCommand="dgCart_Cancel"

OnDeleteCommand="dgCart_Delete" AutoGenerateColumns="False" ShowFooter="True">
                                    <Columns>
                                        <asp:BoundColumn DataField="intProductID" ReadOnly="True"

HeaderText="ProductID">
                                            <HeaderStyle horizontalalign="Center"></HeaderStyle>
                                            <ItemStyle horizontalalign="Center"></ItemStyle>
                                        </asp:BoundColumn>
                                        <asp:BoundColumn DataField="strMake" ReadOnly="True"

HeaderText="Manufacturer">
                                            <HeaderStyle horizontalalign="Center"></HeaderStyle>
                                            <ItemStyle horizontalalign="Center"></ItemStyle>
                                        </asp:BoundColumn>
                                        <asp:BoundColumn DataField="strProductName"

ReadOnly="True" HeaderText="Product Name">
                                            <HeaderStyle wrap="False"

horizontalalign="Center"></HeaderStyle>
                                            <ItemStyle horizontalalign="Center"></ItemStyle>
                                        </asp:BoundColumn>
                                        <asp:BoundColumn DataField="strTypeDetails"

ReadOnly="True" HeaderText="Product Type">
                                            <HeaderStyle wrap="False"

horizontalalign="Center"></HeaderStyle>
                                            <ItemStyle horizontalalign="Center"></ItemStyle>
                                        </asp:BoundColumn>
                                        <asp:BoundColumn DataField="strColour" ReadOnly="True"

HeaderText="Colour">
                                            <HeaderStyle horizontalalign="Center"></HeaderStyle>
                                            <ItemStyle horizontalalign="Center"></ItemStyle>
                                        </asp:BoundColumn>
                                        <asp:TemplateColumn HeaderText="Quantity">
                                            <HeaderStyle horizontalalign="Center"></HeaderStyle>
                                            <ItemStyle horizontalalign="Center"></ItemStyle>
                                            <ItemTemplate>
                                                <%# DataBinder.Eval(Container,

"DataItem.intQuantityOrder") %>
                                            </ItemTemplate>
                                            <EditItemTemplate>
                                                <asp:TextBox id="txtQuantity" runat="server"

Text='<%# DataBinder.Eval(Container, "DataItem.intQuantityOrder") %>'></asp:TextBox>
                                            </EditItemTemplate>
                                        </asp:TemplateColumn>
                                        <asp:BoundColumn DataField="curSalePrice" ReadOnly="True"

HeaderText="Price(#163;)">
                                            <HeaderStyle horizontalalign="Center"></HeaderStyle>
                                            <ItemStyle horizontalalign="Center"></ItemStyle>
                                        </asp:BoundColumn>
                                        <asp:EditCommandColumn ButtonType="LinkButton"

UpdateText="Update" CancelText="Cancel" EditText="Edit Quantity">
                                            <HeaderStyle wrap="False"

horizontalalign="Center"></HeaderStyle>
                                            <ItemStyle horizontalalign="Center"></ItemStyle>
                                            <FooterStyle wrap="False"></FooterStyle>
                                        </asp:EditCommandColumn>
                                        <asp:ButtonColumn Text="Delete" CommandName="Delete">
                                            <HeaderStyle wrap="False"

horizontalalign="Center"></HeaderStyle>
                                            <ItemStyle horizontalalign="Center"></ItemStyle>
                                            <FooterStyle wrap="False"></FooterStyle>
                                        </asp:ButtonColumn>
                                    </Columns>
                                </asp:DataGrid>
                                <br />
                            </div>
                            <div align="center">
                                <br />
                            </div>
                            <div align="center">
                                <table height="50" width="430" border="0">
                                    <tbody>
                                        <tr>
                                            <td align="middle">
                                                <asp:Button id="btnSubmit"

onclick="btnSubmit_Click" runat="server" cssclass="frmbtn" width="90px" Text="Submit

Order"></asp:Button>
                                            </td>
                                        </tr>
                                    </tbody>
                                </table>
                            </div>
                            Total: <asp:Label id="lblTotal" runat="server"></asp:Label>
                        </asp:Panel>
                    </td>
                </tr>
            </tbody>
        </table>
    </form>
</body>
</html>



Go to topic 52781

Return to index page 92
Return to index page 91
Return to index page 90
Return to index page 89
Return to index page 88
Return to index page 87
Return to index page 86
Return to index page 85
Return to index page 84
Return to index page 83