首页 搜索 用户列表 FAQ 注册 登录  
视友(4U2V)视频教学、互动培训、图书出版、互助学习论坛 » 互助技术区 » 网站开发设计 » 请教一个购物车的问题
  请教一个购物车的问题
帖子发起人: lwmzlgd   发起时间: 2008-06-11 09:00 上午   回复数: 5
« 上一主题 下一主题 »
楼主
  2008-06-11, 09:00 上午
lwmzlgd 离线,最后访问时间: 2008-6-24 16:25:53 lwmzlgd

发帖数前500位

新生入学
等级: 新生入学
注册: 2008年6月2日
积分: 10
精华: 0
发贴: 6
V 币: 0.0
请教一个购物车的问题
 
您好,我在做100例中的实现购物车时,在主页中添加了一个随时查看购物车的链接,代码如下:
<td width="153" background="image/navi2_right.gif"><img src="image/top_cart.gif" width="21" height="15" /><u class="STYLE1"><a href="CPBY.aspx">我的购物车</a></u></td>
由于没有向CPBY传递CPID,于是报错:
Source Error:
Line 27:     dt = Cpdat.Tables("DWCP")
Line 28:     Dim dr As DataRow = Cpbt.NewRow()
Line 29:     dr(0) = dt.Rows(0)("CPID")
Line 30:     dr(1) = dt.Rows(0)("CPNAME")
Line 31:     dr(2) = dt.Rows(0)("CPDJ")
 
Source File: D:\mysite\cpby.aspx    Line: 29
请问怎样修改啊
我在单击一个产品购买时,时正常的 ,订单也能提交,但是我想实现,即使不买产品,也应该显示空的购物车。
一下时购物车的代码:
<%@ Page Language="VB" Debug="true" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
     Dim Cpbt As DataTable
       Dim  Cpview as DataView
  Sub CrCpdatatable()
    Cpbt = New DataTable()
    Cpbt.Columns.Add(new DataColumn("CPID",GetType(String)))
    Cpbt.Columns.Add(new DataColumn("CPNAME",GetType(String)))
    Cpbt.Columns.Add(new DataColumn("CPDJ",GetType(single)))
    Cpbt.Columns.Add(new DataColumn("SL",GetType(Int32)))
    Cpbt.Columns.Add(new DataColumn("CPSUM",GetType(double)))
  End Sub
  Sub AddCpbt()
    Dim cpConn,Cpstring AS String
    Dim conn AS OleDbConnection
    Dim Cpadapter AS OleDbDataAdapter
    Dim Cpdat AS DataSet
    Dim dt AS DataTable
    cpConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("dat/dwdat.mdb")
    conn = New OledbConnection(cpConn)
    Cpstring = "SELECT CPID,CPNAME,CPDJ from DWCP WHERE CPID='" &Trim(Request.QueryString("CPID")) & "'"
    Cpadapter = new OleDbDataAdapter(Cpstring,conn)
    Cpdat = New DataSet()
    Cpadapter.Fill(Cpdat,"DWCP")
    dt = Cpdat.Tables("DWCP")
    Dim dr As DataRow = Cpbt.NewRow()
    dr(0) = dt.Rows(0)("CPID")
    dr(1) = dt.Rows(0)("CPNAME")
    dr(2) = dt.Rows(0)("CPDJ")
    dr(3) = 1
    dr(4) = dr(2) * dr(3)
    Cpbt.Rows.Add(dr)
     
  End Sub
  Sub CpTotal()
    Dim i As Integer
      Dim Cpto As single=0
      For i=0 to Cpbt.Rows.Count-1
         Cpto=Cpto+Cpbt.Rows(i)(4)
      Next
      CPCOUNT.text=Cpto
  End Sub
  Sub ByGrid_Delete(sender As Object, e As DataGridCommandEventArgs)
        Dim dr As DataRow = Cpbt.NewRow()
        Dim itemCell As TableCell = e.Item.Cells(0)
        Dim item As String = ItemCell.Text
         CpView.RowFilter = "CPID='" & item & "'"
            If  CpView.Count > 0 Then
                 CpView.Delete(0)
            End If
        CpView.RowFilter = ""
        CpTotal
          ByGrid.DataSource = CpView
        ByGrid.DataBind()
  End Sub
  Sub CpUpdate_Click(sender As object, e As EventArgs)
    Dim i,j As Integer
    Dim _item As DataGridItem
    j=0
    For i=0 To ByGrid.Items.Count-1
      _item = ByGrid.Items(i)
      Dim CountText As TextBox = _item.FindControl("Sltxt")
      Cpbt.Rows(i)(3) = CountText.Text
      Cpbt.Rows(i)(4) = Cpbt.Rows(i)(2) * Cpbt.Rows(i)(3)
    Next
          CpTotal
        ByGrid.DataSource = New DataView(Cpbt)
        ByGrid.DataBind()
  End Sub
  Sub ClearBy_Click(sender As object, e As EventArgs)
      Dim i As Integer
        For i=0 to CpView.Count-1
        CpView.Delete(0)
        Next
        CPCOUNT.text=0
        CpView.RowFilter = ""
      ByGrid.DataSource = CpView
      ByGrid.DataBind()
  End Sub
  Sub Page_Load(Sender As Object,e As EventArgs)
      If Session("Cpshop") Is Nothing Then
      CrCpdatatable
      Session("Cpshop") = Cpbt
    Else
      Cpbt = Session("Cpshop")
    End If
      Cpview = New DataView(Cpbt)
      If (Not IsPostBack) Then
        If Session("USENAME")="" or Session("USENAME")=nothing Then
         response.Redirect("nologin.htm")
        End If
        AddCpbt
            CpTotal
      ByGrid.DataSource = Cpview
      ByGrid.DataBind()
    End If
  End Sub
  Sub NewOrder_Click(sender As object, e As EventArgs)
    Dim cpConn,Cpstring AS String
    Dim conn AS OleDbConnection
    Dim Cpadapter AS new OleDbDataAdapter
    Dim Cpdat AS DataSet
    Dim dt AS DataTable
      Dim Newnow
      Dim Tystring as string
    cpConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("dat/dwdat.mdb")
    conn = New OledbConnection(cpConn)
    Cpstring = "SELECT * from  CPDD"
       Cpadapter = new OleDbDataAdapter(Cpstring,conn)
      Dim yy as OleDbCommandBuilder=new OleDbCommandBuilder (Cpadapter)
      Cpdat = New DataSet()
    Cpadapter.Fill(Cpdat,"CPDD")
         DIM i as integer
      Newnow=now
      Tystring=session("USENAME")+Cstr(year(Newnow))+iif(len(month(Newnow))=2,cstr(month(Newnow)),"0"+cstr(month(Newnow)))+iif(len(day(Newnow))=2,cstr(day(Newnow)),"0"+cstr(day(Newnow)))+cstr(hour(Newnow))+cstr(Minute(Newnow))+cstr(second(Newnow))
      For i=0 to Cpbt.Rows.Count-1
    Dim dr As DataRow =  Cpdat.Tables("CPDD").NewRow()
      dr(0) = Tystring
         dr(1) = Cpbt.Rows(i)("CPID")
      dr(2) = session("USENAME")
         dr(3) = Cpbt.Rows(i)("SL")
    dr(4) = Newnow
    Cpdat.Tables("CPDD").Rows.Add(dr)
      next
      Cpadapter.Update(Cpdat, "CPDD")
      session("Cpshop")=nothing
      conn.close
      response.Redirect("ReEmail.aspx?DDID="+Tystring)
  End Sub
 
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<style type="text/css">
<!--
.style1 {
      color: #FFFFFF;
      font-weight: bold;
      font-size: 12pt;
}
-->
</style></head>
<body >
  <div align="center">
    <form  runat="server">
  <table width="500"  border="0" cellpadding="2" cellspacing="0">
    <tr>
      <td height="30" bgcolor="#333333">
        <div align="left"><span class="style1">我的购物车</span></div></td>
    </tr>
    <tr>
      <td height="58" valign="top"> <ASP:DataGrid AllowPaging="false"
       AutoGenerateColumns="false"
       BackColor="white"
       BorderColor="black"
       CellPadding=3
       CellSpacing="0"
       Font-Name="Verdana"
       Font-Size="8pt"
       HeaderStyle-BackColor="#aaaadd" id="ByGrid" runat="server"
       ShowFooter="false"
       Width="90%" OnDeleteCommand="ByGrid_Delete"
       MaintainState="false">
     <Columns>
       <asp:BoundColumn DataField="CPID" HeaderText="产品品编号" />
       <asp:BoundColumn DataField="CPNAME" HeaderText="产品名" />
       <asp:BoundColumn DataField="CPDJ" HeaderText="单价" DataFormatString="{0:c}"/>
       <asp:TemplateColumn HeaderText="数量">
         <ItemTemplate>
             <asp:TextBox id="Sltxt" width="50" runat="server" Text='<%#Container.DataItem("SL")%>' />
           </ItemTemplate>
       </asp:TemplateColumn>
         <asp:BoundColumn DataField="CPSUM" HeaderText="小计(元)" DataFormatString="{0:c}"/>
         <asp:ButtonColumn
        ButtonType="LinkButton"
        CommandName="Delete"
        HeaderText="删除"
        Text="删除"
        Visible="True"/>    
     </Columns>
  </asp:DataGrid>
       </td>
    </tr>
    <tr>
      <td height="19" valign="top" align="left" style="font-size:9pt "><strong>合计:
          <asp:Label ID="CPCOUNT" runat="server" />                   
        </strong></td>
    </tr>
    <tr >
      <td height="23" bgcolor="#F7F7F7"><div align="center">
        <p>
          <asp:Button ID="SxBt" runat="server" Text="刷新购物车" OnClick="CpUpdate_Click" />         
&nbsp;
<asp:Button ID="ClBt" runat="server" Text="清空购物车" OnClick="ClearBy_Click" />
&nbsp;
<asp:Button ID="NewOrder" runat="server" Text="确定下订单" OnClick="NewOrder_Click" />
&nbsp;
<input name="ExBt" type="button" id="ExBt" value="退出购物车" OnClick=window.close()">
</p>
        </div></td>
    </tr>
  </table>
 
       
    </form></div>
</body>
</html>

IP 地址: 已登录   来自: 已登录    返回顶部
第 2 楼
  2008-06-11, 03:46 下午
john8311 离线,最后访问时间: 2008-9-5 23:45:40 john8311

发帖数前25位

大三
等级: 大三
注册: 2007年2月23日
积分: 178
精华: 0
发贴: 135
V 币: 4.0
Re: 请教一个购物车的问题
 
估计版主是不会理会你的问题的,他只是免免强强愿意对书中的错误负责,你的问题显现不属于这种范围
IP 地址: 已登录   来自: 已登录    返回顶部
第 3 楼
  2008-06-12, 09:30 上午
john8311 离线,最后访问时间: 2008-9-5 23:45:40 john8311

发帖数前25位

大三
等级: 大三
注册: 2007年2月23日
积分: 178
精华: 0
发贴: 135
V 币: 4.0
Re: 请教一个购物车的问题
 
即使不买产品,也应该显示空的购物车

有这个必要吗?
IP 地址: 已登录   来自: 已登录    返回顶部
第 4 楼
  2008-06-13, 09:44 上午
john8311 离线,最后访问时间: 2008-9-5 23:45:40 john8311

发帖数前25位

大三
等级: 大三
注册: 2007年2月23日
积分: 178
精华: 0
发贴: 135
V 币: 4.0
Re: 请教一个购物车的问题
 
你的购物网上传了吗?能不能发给我网址?
我的QQ是:102449234
IP 地址: 已登录   来自: 已登录    返回顶部
第 5 楼
  2008-06-15, 08:58 上午
lwmzlgd 离线,最后访问时间: 2008-6-24 16:25:53 lwmzlgd

发帖数前500位

新生入学
等级: 新生入学
注册: 2008年6月2日
积分: 10
精华: 0
发贴: 6
V 币: 0.0
Re: 请教一个购物车的问题
 
当然有必要啊
就是随时查看购物车啊
现在的问题是 只要不是单击购买 就不能显示购物车
也就是说如果我购物车里有一件商品,然后我把购物车临时关闭了,再想查看购物车时,还得再点一次购买,要不就报错。
 

IP 地址: 已登录   来自: 已登录    返回顶部
第 6 楼
  2008-06-15, 05:26 下午
john8311 离线,最后访问时间: 2008-9-5 23:45:40 john8311

发帖数前25位

大三
等级: 大三
注册: 2007年2月23日
积分: 178
精华: 0
发贴: 135
V 币: 4.0
Re: 请教一个购物车的问题
 
不要紧的,你就再点一次购买嘛,又不算是下订单,数量还可以修改,你的设想似乎没有多大的实用价值,除非你只是想学习编程
IP 地址: 已登录   来自: 已登录    返回顶部
 第 1 页 总共 1 页 [共有 6 条记录]
视友(4U2V)视频教学、互动培训、图书出版、互助学习论坛 » 互助技术区 » 网站开发设计 » 请教一个购物车的问题
123456



[联通如意博客] - [亿恋网] - [hiDotNet官方]

粤ICP备06031719号


(C)Copyright 2004-2005, 视友(4U2V)视频教学、互动培训、图书出版、互助学习论坛 All Rights Reserved.
ASP.Net Forums: 2.3.2716
意见反馈 | 关于我们

4u2v视频网 Powered by Community Server :: Forums 中文本地化: hiDotNet.com