当前位置:首页 > 毕业论文
基于.net 网上购物系统
13
第四章 系统详细实现
4.1前台功能模块的具体实现
4.1.1系统首页
首页提供了本系统绝大多数功能的入口,例如:会员注册、登录,管理员登录,商品查询,最新商品,热销商品等。
会员登录主要是将用户输入的用户名和密码与数据库中shopper表中的已有的信息进行比对,如果完全一样,则是合法用户,可以成功登录,如果不一样,则登录失败。
查询功能是通过两个下拉列表来实现的,为了避免用户自己输入出现错误导致无法查询到自己要看到的内容,该查询功能就没有使用用户输入的方式来进行关键字查询,而是通过先选择第一个下拉列表来确定categoryID(产品种类ID),然后通过这个categoryID从数据库的product表中读出所有categoryID相同的产品型号显示在第二个下拉列表中,此时,用户就可以选择想要查看的具体产品的型号,再点击“查询”即可看到相应产品的详细信息。
在此页面上,最新商品和热销商品的所有信息都是通过DataList这个功能强大的的控件实现的,“最新商品”使用Repeater1,通过在管理员添加新产品到系统中时所添加的产品的发布年、月来排序,代码如下:
select top 6 product.originalprice,product.saleprice,product.photo,productID from product order by publishyear,publishmonth desc\
热销商品使用Repeater2,通过计算shoppingcart表中购买的数量从而来确定产品的销售量的多少来进行排序,代码如下:
select originalprice,saleprice,photo,productID from product where productID in (select top 6 productID from shoppingcart group by productID order by sum(productquantity) desc) 4.1.2商品管理
14 第四章 当用户进入产品中心以后,通过Repeater这个控件,显示出相应产品类别的产品图片及一些相关信息,其中包含产品名称,产品类别以及相应的价格信息等,整个页面的左边部分,分类列出了各类产品,每一类产品都有自己唯一对应的categoryID,同时,categoryID在product表里都有相对应的产品名,当点击某个产品种类时,所有对应该种类categoryID的产品都会从数据库中提取出来并且显示在页面上,这样起到了导航的作用,一目了然,方便用户能够比较迅速找到自己想要的产品。
所有产品的图片都是管理员在添加新产品到系统中时,上传到images这个目录下的图片的名字和产品的型号相同,通过下面的代码来获得:
((Image)e.Item.FindControl(\MyDataRowView.Row[4].ToString();
另外,通过点击“详细信息”就可查看该商品的具体资料,用户可以看到产品名称,产品价格,以及详细描述,是在product表中通过相应的productID(产品ID)读出其相关信息的,通过下面的语句实现:
select productname,productdescription,cast(saleprice as nvarchar)as price from product where productID='\4.1.3购物车
当用户查看了相关商品的详细信息以后,如果愿意购买并且是在用户已经登录的情况下,可以在下拉列表中选择购买商品的数量并点击“添加到购物车”加入到购物车中,在这个过程中,系统将用户选择的商品所对应的productID和购买的数量都写入到数据库的shoppingcart这个表中,并生成唯一的cartID(购物车ID),一个cartID对应用户登录一次所有购买的商品,也就是说cartID和productID的对应关系既可以是一对一,也可以是一对多。最后顾客结束购物时,点击“查看我的购物车”,则在可以看到相关购物信息,这就是将shoppingcart表中生成的cartID所对应的productID和购买数量的信息读出并通过GridView这个控件显示出来。
用户可以在最终结算前放弃购买某样或多样已放在购物车中的商品,在此时点击“删除”,shoppingcart表中的当前cartID所对应的productID删除,从而达到放弃购买的作用。
基于.net 网上购物系统
15
总计金额是通过计算GridView中第3列中的小计而得,最后通过一个Lable显示出来,具体实现的代码如下:
double totalmoney = 0; double tempprice;
for (int i = 0; i < GridView1.Rows.Count; i++) {
tempprice= Convert.ToDouble(GridView1.Rows[i].Cells[3].Text.ToString()); totalmoney += tempprice; }
Label1.Text = totalmoney.ToString();
如果是未注册用户或未登录用户,则无法购买,系统会有相应提示,并自动转到主页。具体代码如下
if(Session[user]!=null) { } else {
Response.Write(\用户目
//进行页面跳转,跳转到支付页面
前没有登录,请登录'););
}
4.1.4订单管理
实现生成和显示当前订单以及显示历史订单的功能,当用户购物完成以后,查看自己的购物车后,并确定购买的时候,点击“最终结算”可以生成相应的订单,当系统生成订单时,会将shoppingcart表中的cartID,shopperID,totalcost插入到orders表中,代码如下:
protected void Button1_Click(object sender, EventArgs e) {
16 第四章 cartid = Request.Cookies[\ shopperid =Request.Cookies[\ string sql = string.Format(\orders(cartID,shopperID,totalcost)
values({0},{1},convert(money,{2}))\
databaseAccess.ExeSql(sql); Response.Cookies.Clear(); Response.Redirect(\ }
此外,订单日期是获取当前系统时间并自动写入,而订单号也是在orders表中自动生成,每个唯一的订单号对应唯一的cartID,所以查看订单详情即是获取订单号与对应cartID,通过cartID在shoppingcart表中得到相应的信息。 此外,如果想查看自己所有的订单情况,就可以直接点击“所有订单”,这样通过Getorder2这个函数来获取所有的订单信息,将该用户在本系统中所有的购物订单显示出来,代码如下:
public static DataSet Getorder2(string shopperid) {
SqlConnection conn = new SqlConnection(connection);
SqlDataAdapter data = new SqlDataAdapter(\where shopperID='\
DataSet ds = new DataSet(); data.Fill(ds); conn.Close(); return ds; } 4.1.5用户管理
实现用户注册功能,主要向shopper表中插入新用户信息,包括用户名、国家、省份、城市、联系地址、密码、姓、名、电子邮箱、邮政编码、联系电话,在本系统中用户名不允许重名,因此,系统通过checkUserExist这个函数进行判
共分享92篇相关文档