上一个实例中讲解了如何在线购物。当完成了在线购物后,就可以给产品下订单了,下订单时需要将产品发给客户以备核对,本实例就来讲解其实现过程。
效果说明 在“ index.apx ”中浏览公司产品,然后单击【购买】按钮将产品添加到购物车中,当订购完毕后,单击购物车中的【确定下订单按钮】,将购物车中的产品添加到订单数据库中,再用邮件将订单自动发给客户,并显示出如图 84-1 所示的订单效果。
创作构思 单击购物车中的【确定下订单按钮】,将购物车中临时表“ Cpdat ”里的所有记录添加到“ CPDD ”(产品订单)表中,再通过 System.Web.Mail 对象完成电子邮件的发送。
操作步骤
步骤一 给产品下订单
( 1 ) 打开“ CPBY.aspx ”页面,在 <script runat="server"> 中添加过程“ NewOrder_Click ”,其代码如下所述。
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
Cpbt=nothing
Cpview=nothing
Cpdat=nothing
conn.close
response.Redirect("ReEmail.aspx?DDID=" Tystring)
End Sub
(读者可打开【光盘】|【源文件】|【实例 84 】|【 84.1.txt 】文件,直接复制)
提示: OleDbDataAdapter 对象是 DataAdapter 对象的一种。 DataAdapter 对象是用于充当 DataSet 与实际数据源之间的对象, DataSet 可以通过 OleDbDataAdapter 对象来更新实际数据源,同样,实际数据源也可以通过 DataAdapter 更新 DataSet 对象。 DataAdapter 对象分为 SQLDataAdapter 对象和 OleDbDataAdapter 对象两种。 SQLDataAdapter 对象用于访问 SQL Server 等数据库, OleDbDataAdapter 对象用于访问使用 OLE DB 链接的数据库,如 Access 。如果代码使用了 OleDbCommandBuilder 对象,通过该对象就可以自动生成 InserCommand 、 DeleteCommand 、 UpdateCommand 属性所需要的 Command 对象,本例就是用它生成 InserCommand 的 Command 对象。
图 84-2 所示是 CPDD 表(产品订单)在 Access 中的数据结构。
这里需要特别说明的是,订单编号( DDID )是由用户的登录名、年、月、日、小时、分钟、秒组成的(以上时间参数都是用户下订单时的时间参数),所以代码为 Newnow=now ,首先取得下订单时的时间。代码 iif(len(month (Newnow)) =2,cstr(month(Newnow)), "0" cstr(month(Newnow)) ,表示当前月份的位数小于 2 时,在其上面加上“ 0 ”,如目前月份为“ 5 ”时,则显示为“ 05 ”,所以代码为 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 ))) 。
欢迎光临 江西广告网 (http://bbs.jxadw.com/) | Powered by Discuz! X3.2 |