Wrox Programmer Forums
|
ASP.NET 1.0 and 1.1 Basics ASP.NET discussion for users new to coding in ASP.NET 1.0 or 1.1. NOT for the older "classic" ASP 3 or the newer ASP.NET 2.0.
Welcome to the p2p.wrox.com Forums.

You are currently viewing the ASP.NET 1.0 and 1.1 Basics section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
 
Old December 16th, 2006, 06:58 AM
Authorized User
 
Join Date: Sep 2006
Posts: 82
Thanks: 0
Thanked 0 Times in 0 Posts
Default Totals not working

Hi,

I've developed a shopping cart and cannot get the Totals to calculate. Here's the

code - asp.net 1.1. vb 2003 . Any ideas what's wrong - I get no errors but no

total value either !!!

Code:
%@ Page Language="VB" Debug="true" %>
<%@ import Namespace="System.Data" %>
<%@ 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

        GetItemTotal()

             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

             Function GetItemTotal()
                 Dim ds As DataSet = New System.Data.DataSet
                 dgCart.DataSource = ds
                 dgCart.DataBind()
                 Dim sumTotal As Integer
                 sumTotal = ds.Tables(0).Compute("SUM(Price(£)))",           

String.Empty).ToString
                 lblTotal.Text = "TOTAL :" & sumTotal
             End Function


             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> 

    <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>
 
Old December 20th, 2006, 06:55 AM
Registered User
 
Join Date: Dec 2006
Posts: 2
Thanks: 0
Thanked 0 Times in 0 Posts
Default

Hi,

Something to begin with, lengthy code might cause everyone to run away immediately :P

Anyway, without having scrolled down the whole code i have the feeling that its more simple than you think:
your function "GetItemTotal()" first creates a NEW dataset, then bind the datagrid to the empty dataset which will not calculate anything untill hell freezes over. Where is the data in that dataset?

&lt;i&gt;Goin' Mad&lt;/i&gt;





Similar Threads
Thread Thread Starter Forum Replies Last Post
Help with totals rsm42 ASP.NET 1.0 and 1.1 Basics 0 December 15th, 2006 01:18 PM
Grouping and totals btado XML 4 July 1st, 2005 03:08 AM
Grouping and totals btado XSLT 3 June 22nd, 2005 01:08 AM
how can i display the totals only squarefish Classic ASP Databases 4 November 9th, 2004 07:23 AM
Totals bjackman Access 1 February 8th, 2004 09:27 PM





Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.