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" />
<asp:Button ID="ClBt" runat="server" Text="清空购物车" OnClick="ClearBy_Click" />
<asp:Button ID="NewOrder" runat="server" Text="确定下订单" OnClick="NewOrder_Click" />
<input name="ExBt" type="button" id="ExBt" value="退出购物车" OnClick=window.close()">
</p>
</div></td>
</tr>
</table>
</form></div>
</body>
</html>