ado.net 做购物车

本文介绍了一个简单的购物车实现方法,利用ASP.NET和SQL Server从数据库中读取商品信息,并使用DataTable和DataView进行数据管理和操作。当用户点击“放入购物车”按钮时,会将商品添加到会话中保存的购物车数据表。
摘要由CSDN通过智能技术生成

DataView的使用

DataView对象可以用来筛选、排序、查询、修改(添加、修改、删除)DataTable对象中的数据。

下面是做购物车的程序:

Default.aspx:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Configuration;

using System.Data.SqlClient;

using System.Data;

public partial class _Default : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        Table t = new Table();

        InitTitle(t);

        string strcnn = ConfigurationManager.ConnectionStrings["cnnstring"].ConnectionString;

        using (SqlConnection sqlCnn = new SqlConnection(strcnn))

        {

            SqlCommand sqlcmm = new SqlCommand();

            sqlcmm.Connection = sqlCnn;

            sqlcmm.CommandText = "select * from pros";

            sqlCnn.Open();

            using (SqlDataReader reader = sqlcmm.ExecuteReader())

            {

                if (reader != null)

                {

                    while (reader.Read())

                    {

                        FillData(t, reader);

                    }

                }

            }

        }

        this.div1.Controls.Add(t);

    }

    private void FillData(Table t, SqlDataReader reader)

    {

        TableRow row = new TableRow();

        TableCell cel = new TableCell();

        cel.Text = reader["name"].ToString();

        row.Cells.Add(cel);

        cel = new TableCell();

        cel.Text = reader["price"].ToString();

        row.Cells.Add(cel);

        cel = new TableCell();

        TextBox txt = new TextBox();

        txt.ID = "txt" + reader["id"].ToString();

        txt.Text = "1";

        txt.Width = 40;

        txt.MaxLength = 3;

        cel.Controls.Add(txt);

        row.Cells.Add(cel);

        cel = new TableCell();

        Image img = new Image();

        img.Width = 60;

        img.Height = 100;

        img.ImageUrl = reader["photoPath"].ToString();

        cel.Controls.Add(img);

        row.Cells.Add(cel);

        cel = new TableCell();

        Button btn = new Button();

        btn.Text = "放入购物车";

        btn.Command += new CommandEventHandler(btn_Command);

        btn.CommandArgument = reader["id"].ToString() + ";" + reader["name"].ToString();

        cel.Controls.Add(btn);

        row.Cells.Add(cel);

        t.Rows.Add(row);

    }

    void btn_Command(object sender, CommandEventArgs e)

    {

        string[] strs = e.CommandArgument.ToString().Split(';');

        DataTable cart = Session["cart"as DataTable;

        if (cart == null)

            cart = this.InitShoppingCart();

        DataView dv = new DataView(cart);

        dv.RowFilter = "id=" + strs[0];

        DataRowView row = null;

        int numNEW = 1;

        TextBox txt = this.FindControl("txt" + strs[0]) as TextBox;

        if (txt!=null)

        {

            numNEW = Convert.ToInt32(txt.Text);

        }

        if (dv.Count != 0)

        {

            row = dv[0];

            int nums = (int)row["nums"];

            row["nums"] = nums + numNEW;

        }

        else

        {

            row = dv.AddNew();

            row["nums"] = numNEW;

            row["id"] = strs[0];

            row["name"] = strs[1];

        }

        row.EndEdit();

    }

    private DataTable InitShoppingCart()

    {

        DataTable dt = new DataTable();

        DataColumn dc = new DataColumn("id"typeof(int));

        dt.Columns.Add(dc);

        dc = new DataColumn("name"typeof(string));

        dt.Columns.Add(dc);

        dc = new DataColumn("nums"typeof(int));

        dt.Columns.Add(dc);

        Session["cart"] = dt;

        return dt;

    }

    private void InitTitle(Table t)

    {

        //t.Attributes.Add("rules", "rows");

       // t.BorderStyle = 

    

        t.BorderWidth = 1;

        TableRow row = new TableRow();

        TableCell cell = new TableCell();

        cell.Text = "书名";

        row.Cells.Add(cell);

        cell = new TableCell();

        cell.Text = "价格";

        row.Cells.Add(cell);

        cell = new TableCell();

        cell.Text = "图";

        row.Cells.Add(cell);

        cell = new TableCell();

        cell.Text = "";

        row.Cells.Add(cell);

        t.Rows.Add(row);

    }

    protected void Button1_Click(object sender, EventArgs e)

    {

        this.Server.Transfer("viewCart.aspx");

    }

}

viewCart.aspx

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Data;

public partial class ViewCart : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        DataTable dt = Session["cart"as DataTable;

        if (dt != null)

        {

            this.GridView1.DataSource = dt;

            this.GridView1.DataBind();

        }

        else

            Response.Write("还没有购物!?");

    }

}



目 录 引 言 5 第一章 建设购物网站的分析 7 1.1看清现在消费趋势 7 1.2建立个性化的平台 7 1.3重物流配送,发挥网络优势 7 1.4注意支付方式的安全、便捷 7 1.5有针对性地加强宣传,扩大影响 7 1.6加强售后服务 7 1.7 创新 7 第二章 系统介绍 8 2.1系统的结构 8 2.2开发工具介绍 9 2.2.1IIS简介 9 2.2.2ASP.NET介绍 9 2.2.3关于SQL Server 2005 10 第三章 需求分析及概要设计 11 3.1需求分析的意义 11 3.2目标分析 11 3.2.1购物系统目标分析 11 3.2.2购物系统目标 12 3.3需求结构分析 13 3.4功能分析 13 3.4.1用户中心功能分析 13 3.4.2网站信息管理功能分析 13 3.4.3商品管理功能分析 14 3.4.4购物车功能分析 14 3.4.5订单管理功能分析 15 3.4.6销售结算功能分析 16 第四章 系统设计 16 4.1设计概述 16 4.2网站结构 17 4.2.1 系统总体功能结构 17 4.3系统详细设计 19 4.3.1会员注册、登陆 19 4.3.2修改用户信息和密码 21 4.3.3查询订单 22 4.3.4浏览用户留言与发表评论 23 4.3.5购物车管理 24 4.3.6货物搜索 24 4.3.7货物分类显示 25 4.3.8后台登陆及密码修改 25 4.3.9后台订单管理 25 4.3.10后台货物管理 26 4.4数据库设计 26 4.4.1主要设计思想: 27 4.4.2在本系统中数据库具体表结构的设计: 27 4.4.3整站流程图 29 第五章 页面具体功能实现 32 5.1公共模块 32 5.2用户模块设计 33 5.2.1用户注册模块 33 5.2.2用户登陆模块 35 5.2.3更改密码模块 35 5.3浏览、购买商品模块设计 35 5.3.1浏览商品信息 35 5.3.2购物车模块设计 35 5.3.3前台订单模块设计 36 5.3.4订单结账模块设计 36 5.4首页设计 36 5.4.1首页商品分类显示模块设计 36 5.4.2首页点击排行榜模块与推荐的商品模块设计 36 5.4.3首页公告模块设计 37 5.5用户留言模块设计 37 5.6后台管理设计 37 5.6.1商品管理模块设计 37 5.6.2订单管理模块设计 38 5.6.3首页公告管理设计 38 5.6.4管理员密码修改 38 5.6.5退出登陆 38 第六章 关键技术分析 39 6.1系统安全性 39 6.2使用ADO.NET访问数据库 39 6.3提高速度 40 6.4防止SQL注入式攻击 40 结论 42 致 谢 43 参考文献: 43
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值