基于asp.net在线购物网站系统毕业设计

获取项目源文件,学习交流联系Q:1415736481,可指导毕设,课设

伴随着计算机技术在各行各业日益普及和深入的应用,Internet的迅速崛起,网络的概念早已深入人心。网络在各行各业发展战略中占据了重要的位置,成为了商家不可分割的一部分。

商家对商品的宣传已不只是局限于电视与报纸,网络已成为商家展示商品的另一个平台。通过网络可以实现新闻发布、网上购物、信息查询等功能,给顾客带来极大便利。电子商务在改变我们原有经营方式和经营理念的同时,也为商家带来了极大利益。因此,对于商家来说,拥有一个属于自己的网站是至关重要的。

本购物网站实现了网上购物的基本功能。包括:新闻发布、商品搜索、商品浏览、商品订购、查看订单、订单维护、会员管理(注册、修改)、访客留言、站内投票、客户服务…等功能模块。

系统使用ASP.NET(C#语言)+SQL Server 2005及其它辅助软件(PhotoShop,Flash,Dreamweaver)进行开发。

 

关键词:ASP.NET  C#语言  SQL Server 2005

 

 

 

 

 

第一章  引  言

1.1本系统研究的意义

随着市场经济和计算机软、硬件技术的迅速发展,网络技术的推广普及,Internet已成为人们生活、工作中不可或缺的一部分。网上购物也将成为市场主流,本购物系统为广大购物爱好者提供一个不用出门便可轻松购物的平台,即省时又方便。

客户可查看商城中的所有商品信息,可很好的进行价格对比,挑选合适自己的商品,经网上订购、付款便可购得各类物美价廉的商品。

网上购物平台的诞生给人们带来购物的便利,也给商家带来了前所未有的效益。购物网站同时也为商家提高了知名度,达到推销效果,也能把销售区城扩大,有一举多得的功效。

网络销售已成为了商家提高经济效益的一种途径。本系统即能为客户提供便利也能为商家提高效益,相信购物网站在商业界肯定占据重要地位。

1.2设计《购物系统》的可行性

网上购物已成为商业主流,购物系统给商家带来效益的同时也给客户带来便利。本系统主要实现普遍的购物功能(商品展示、商品挑选、商品订购等),系统页面设计充分地满足使用者的需求,达到一般购物系统的水平。

 

 

 

 

 

 

第二章  系统分析

2.1需求分析

《购物系统》主要为购物者提供一个方便购物的平台,同时也能给商家带来经济效益。通过充分的调查研究,结合一般的购物系统功能,本系统的功能需求如下:

商品管理: 客户可挑选网站内所有商品并订购,管理员对商品进行添加、维护;

会员管理: 会员可以注册并对自己的注册信息进行修改,管理员有提升权限;

新闻管理: 新闻显示,新闻发布,新闻维护;

商品订购: 包括商品挑选,填写货单,核对订单,结账付款等功能;

订单管理: 订单维护,修改订单,删除订单;

留言管理: 留言维护、删除、回复;

数据处理需求:凡是与客户交互的信息都要经过检测分析,合法的数据才可存入数据库,不合法的数据拒绝操作。对重要数据可进行备份,防止重要数据丢失。

 

2.2数据流程分析

《购物系统》主要实现购物功能,本购物系统包括商品展示,商品分类,商品检索,商品订购,订单生成,结账等功能。本网站用简洁明了的方式展示商品,有销售分类显示、性质分类显示功能,顾客挑选商品放入购物车,登陆后才能进入结账系统,核对订单填写配送信息后便可完成购物操作。

 

 

 

 

 

 

流程图

打开网站

商品展示

选择商品

放入购物车

结账

会员登陆

是否登陆

 

填写配送信息

选择送货方式

选择付款方式

核对信息

完成订单

继续购物

 

 

 

 

2.3开发环境

计算机操作系统:Windows XP,

开发工具:Microsoft Visual Studio 2005

开发语言:C#语言

数据库管理系统: SQL  Server 2005

辅助软件:Flash、Dreamweaver、PhotoShop

第三章  系统数据库结构

3.1数据库分析设计

购物系统数据量庞大,数据处理复杂,数据表间要进行多个关联。本购物系统共设计15个数据表,表表间建立相应外键关系,以实现复杂的系统需求,完成商品罗列显示、商品订购、付款配送等功能。

3.2数据库表结构

为了实现购物系统物应有的功能,结合本系统对有关数据的存储的需要,现将本系统数据库设计成15个数据库表:

(1)  调查表          存储用户对网站服务要求的反馈信息

(2)  订单表          存储用户订单信息,记录订购商品各种信息

(3)  付款类型表      存储用户支付款类型。

(4)  留言表          存储浏览者的心声之言反馈给网站管理员

(5)  商品表          存储商品信息以显示给浏览者浏览

(6)  商品类别表      存储商品类别信息

(7)  商品评论表      存储用户对商品的评价信息

(8)  商品收藏表      存储用户的商品收藏信息

(9)  商品子类别表    存储商品子类别信息

(10) 送货信息表      存储送货信息

(11) 销售类别表      存储商品的销售类别信息

(12) 新闻表          存储网站新闻信息

(13) 新闻类别表      存储新闻的类别信息,以便分类显示新闻

(14) 用户表          存储网站会员用户信息

(15) 用户类别表      存储用户类别信息,以便分配使用网站的权限

3.2.1调查表

列名

数据类型

是否为空

说明

调查编号

int

NOT NULL

主键、自增变量1

调查内容

varchar(100)

NULL

 

票数

int

NULL

 

票率

varchar(20)

NULL

 

3.2.2订单表

列名

数据类型

是否为空

说明

订单编号

int

NOT NULL

主键、自增变量1

商品编号

int

NULL

 

货单编号

int

NULL

与送货信息表外键关联

商品名称

varchar(100)

NULL

 

商品单价

decimal(18,2)

NULL

 

订购数量

int

NULL

 

用户名

varchar(20)

NULL

 

订购日期

datetime

NULL

 

处理标志

bit

NULL

 

3.2.3付款类型表

列名

数据类型

是否为空

说明

付款编号

int

NOT NULL

主键、自增变量1

付款类型

varchar(20)

NULL

 

类别权重

int

NULL

用于自定义排序

3.2.4留言表

列名

数据类型

是否为空

说明

留言编号

int

NOT NULL

主键、自增变量1

留言内容

varchar(100)

NULL

 

留言日期

datetime

NULL

 

留言用户

varchar(20)

NULL

 

回复用户

varchar(20)

NULL

 

回复内容

text

NULL

 

回复日期

datetime

NULL

 

3.2.5商品表

列名

数据类型

是否为空

说明

商品编号

int

NOT NULL

主键、自增变量1

商品名称

varchar(100)

NULL

 

市场价

decimal(18,2)

NULL

 

会员价

decimal(18,2)

NULL

 

商品数量

int

NULL

 

上架日期

datetime

NULL

 

商品介绍

text

NULL

 

商品图片

varchar(50)

NULL

 

商品类别

int

NULL

与商品类别表外键关联

商品子类别

int

NULL

与商品子类别表外键关联

销售类别

int

NULL

与销售类别表外键关联

查看次数

int

NULL

 

销售数量

int

NULL

 

3.2.6商品类别表

列名

数据类型

是否为空

说明

商品类别编号

int

NOT NULL

主键、自增变量1

商品类别

varchar(50)

NULL

 

类别权重

int

NULL

用于自定义排序

3.2.7商品评论表

列名

数据类型

是否为空

说明

评论编号

int

NOT NULL

主键、自增变量1

评论内容

text

NULL

 

评论用户

varchar(20)

NULL

 

评论时间

datetime

NULL

 

商品编号

int

NULL

与商品表外键关联

3.2.8商品收藏表

列名

数据类型

是否为空

说明

收藏编号

int

NOT NULL

主键、自增变量1

商品编号

int

NULL

与商品表外键关联

收藏用户

varchar(20)

NULL

 

收藏日期

datetime

NULL

 

失效日期

datetime

NULL

 

3.2.9商品子类别表

列名

数据类型

是否为空

说明

商品子类别编号

int

NOT NULL

主键、自增变量1

商品子类别

varchar(50)

NULL

与商品类别表外键关联

商品类别编号

int

NULL

 

类别权重

int

NULL

用于自定义排序

3.2.10送货信息表

列名

数据类型

是否为空

说明

货单编号

int

NOT NULL

主键、自增变量1

支付方式

varchar(20)

NULL

 

运送方式

varchar(20)

NULL

 

用户名

varchar(20)

NULL

 

真实姓名

varchar(20)

NULL

 

联系电话

varchar(20)

NULL

 

[E-Mail]

varchar(20)

NULL

 

邮政编码

varchar(10)

NULL

 

收货地址

varchar(100)

NULL

 

下单日期

datetime

NULL

 

3.2.11销售类别表

列名

数据类型

是否为空

说明

销售类别编号

int

NOT NULL

主键、自增变量1

销售类别

varchar(20)

NULL

 

类别权重

int

NULL

用于自定义排序

3.2.12新闻表

列名

数据类型

是否为空

说明

新闻编号

int

NOT NULL

主键、自增变量1

新闻标题

varchar(100)

NULL

 

新闻内容

text

NULL

 

新闻类别

int

NULL

与新闻类别表外键关联

添加时间

datetime

NULL

 

点击率

int

NULL

 

3.2.13新闻类别表

列名

数据类型

是否为空

说明

类别编号

int

NOT NULL

主键、自增变量1

类别名称

varchar(20)

NULL

 

类别权重

int

NULL

用于自定义排序

3.2.14用户表

列名

数据类型

是否为空

说明

用户编号

int

NOT NULL

主键、自增变量1

用户名

varchar(100)

NOT NULL

 

真实姓名

varchar(20)

NULL

 

密码

varchar(20)

NOT NULL

 

用户地址

varchar(100)

NULL

 

电话

varchar(20)

NULL

 

邮件地址

varchar(20)

NULL

 

邮政编号

varchar(20)

NULL

 

注册日期

datetime

NULL

 

身份标志

int

NULL

 

3.2.15用户类别表

列名

数据类型

是否为空

说明

类别编号

int

NOT NULL

主键、自增变量1

类别名称

varchar(20)

NULL

 

类别权重

int

NULL

用于自定义排序

 

 

 

 

 

 

 

 

3.3数据表关系图

第四章  系统功能模块

4.1系统各功能模块划分

《在线购物系统》属综合性系统,数据量大,数据间的处理复杂。为了更好的实现购物系统所需的功能,将本系统划分为6个系统模块:

·商品管理系统: 客户可挑选网站内所有商品并订购,

管理员对商品进行添加、维护;

·会员管理系统: 会员可对自己的账户信息进行修改,

管理员有提升权限(把普通会员提升为管理员);

·新闻管理系统: 新闻显示,新闻发布,新闻维护;

·商品订购系统: 包括商品挑选,填写货单,核对订单,结账付款等功能;

·订单管理系统: 订单维护,修改订单,删除订单;

·留言管理系统: 留言维护、删除、回复;

4.2系统功能结构图

 

商品展示

商品分类

商品详情

商品评论

同类商品展示

商城新闻

商城动态

新闻分类

详细新闻

会员系统

会员注册

会员登陆

信息修改

购物车

商品选购

填写订单

生成订单

在线客服

电话在线

QQ在线

Email联系

网内投票

后台管理

商品管理

订单管理

新闻管理

用户管理

留言管理

基础维护

商品添加

商品维护

新闻发布

新闻维护

添加用户

用户维护

评论管理

查看留言

留言维护

订单维护

新闻类别

商品类别

商品子类别

付款类别

用户类别

评论维护

调查顶目

前台功能

 访客留言

票率展示

 留言信息

 

第五章  系统功能实现

根据软件开发的基本流程,在完成了系统需求、系统分析、系统设计后,就进入系统实现阶段了,本系统使用三层架构进行开发,以下是整个系统的功能实现,包括前台的页面展示和后台的代码剖析。

5.1数据访问层

public class DB

{

    private SqlConnection con;

    public DB()

    {

        con = new SqlConnection();

        con.ConnectionString = ConfigurationManager.AppSettings["conStr"].ToString();

    }

    public void open()

    {

        if (con.State == ConnectionState.Closed)

        {

            con.Open();

        }

    }

    public void close()

    {

        if (con.State == ConnectionState.Open)

        {

            con.Close();

        }

    }

    public DataTable DT(string sqlStr)

    {

        SqlDataAdapter sda = new SqlDataAdapter(sqlStr, con);

        DataSet ds = new DataSet();

        sda.Fill(ds);

        return ds.Tables[0];

    }

    public DataSet DS(string sqlStr)

    {

        SqlDataAdapter sda = new SqlDataAdapter(sqlStr, con);

        DataSet ds = new DataSet();

        sda.Fill(ds);

        return ds;  }

    public bool ExeSql(string sqlStr)

    {

        open();

        SqlCommand cmd = new SqlCommand(sqlStr, con);

        int i = cmd.ExecuteNonQuery();

        close();

        if (i > 0)

        {

            return true;

        }

        return false;

}

    public bool ExeCount(string sqlStr)

    {

        open();

        SqlCommand cmd = new SqlCommand(sqlStr, con);

        int i = Convert.ToInt32(cmd.ExecuteScalar());

        close();

        if (i > 0)

        {

            return true;

        }

        return false;

    }

    public string FirstStr(string sqlStr)

    {

        open();

        SqlCommand cmd = new SqlCommand(sqlStr, con);

        string  Str = Convert.ToString(cmd.ExecuteScalar());

        close();

        return Str;

    }

    public DataTable DT(string SqlStr, SqlParameter[] prm, CommandType type)

    {

        SqlCommand cmd = new SqlCommand(SqlStr, con);

        cmd.CommandType = type;

        cmd.Parameters.AddRange(prm);

        SqlDataAdapter sda = new SqlDataAdapter(cmd);

        DataSet ds = new DataSet();

        sda.Fill(ds);

        return ds.Tables[0];}

5.2前台功能

5.2.1登录模块

       系统将会根据登录用户的类型进入不同的操作页面。(普通会员登陆进入购物网首页;管理员登陆进入网站后台管理)

会员登陆进入页面:会员登陆后就可以购物,还可挑选商品进行收藏

 

 

5.2.2商品分类

5.2.3商品结账

5.2.4会员订单

 

5.3后台管理

5.3.1商品添加

实现代码:

protected void btnAdd_Click(object sender, EventArgs e)

    {

        string FileName = FUImg.PostedFile.FileName;//上传文件路径

        string subFileName = FileName.Substring(FileName.LastIndexOf(".") + 1);//后缀名

        string path = Server.MapPath("~\\images\\products");

        string ImgName = DateTime.Now.ToString("yyyyMMddHHmmssffff") + "." + subFileName;

        string FilePath = path + "\\" + ImgName;

        if (FUImg.HasFile)

        {

            if (subFileName.ToUpper() == "JPG" || subFileName.ToUpper() == "BMP" || subFileName.ToUpper() == "GIF")

            {

                FUImg.PostedFile.SaveAs(FilePath);

            }

            else

            {

                Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "");

                return ;

            }

        }

        else

        {

            Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "");

            return ;

        }

string SqlStr = "insert into 商品表(商品名称,市场价,会员价,商品数量,上架日期,商品介绍,商品图片,商品类别,商品子类别,销售类别) values('" + txtProName.Text + "','" + txtMarPrice.Text + "','" + txtVipPrice.Text + "','" + txtProNum.Text + "','" + DateTime.Now.ToString() + "','" + txtContext.Text + "','" + ImgName + "','" + DLProType.SelectedValue.ToString() + "','"+DLProSubType .SelectedValue .ToString () + "','" + DLType.SelectedValue.ToString() + "')";

        if (n.ExeSql(SqlStr))

        {

            Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "");

            clear();

        }

        else

        {

            Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "");

        }

}

5.3.2商品维护

实现代码:

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)

    {

        string ProID = GridView1.DataKeys[e.RowIndex].Value.ToString();

        string SqlStr = "delete from 商品表 where 商品编号='"+ProID +"'";

        if (n.ExeSql(SqlStr))

        {

            string ImgName = ((Label)GridView1.Rows[e.RowIndex].FindControl ("LBImg")).Text.Trim();

            string path = Server.MapPath("~\\images\\products\\")+ImgName;

            if (File.Exists(path))

            {

                File.Delete(path);

            }

            GridView1.EditIndex = -1;

            databind();

        }

        else

        {

            Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "");

        }

    }

    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)

    {

        GridView1.EditIndex = e.NewEditIndex;

        databind();

    }

    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)

    {

        string ProductID, ProName, MarPrice, VipPrice, ProNum, DateTime, Context, ImgName;

        ProductID = GridView1.DataKeys[e.RowIndex].Value.ToString();

        ProName = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txtProName")).Text.Trim();

        MarPrice = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls [0]).Text.Trim();

        VipPrice = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text.Trim();

        ProNum = ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text.Trim();

        DateTime = ((TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).Text.Trim();

        Context = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txtProContext")).Text.Trim();

        ImgName = ((TextBox)GridView1.Rows[e.RowIndex].FindControl ("txtImg")).Text.Trim();

        string SqlStr = "update 商品表 set 商品名称='" + ProName + "',市场价='" + MarPrice + "',会员价='" + VipPrice + "',商品数量='" + ProNum + "',上架日期='" + DateTime + "',商品介绍='" + Context + "',商品图片='" + ImgName + "' where 商品编号='" + ProductID + "'";

        bool flag = n.ExeSql(SqlStr);

        if (flag == false)

        {

            Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "");

        }

        GridView1.EditIndex = -1;

        databind();

}

5.3.3订单维护

实现代码:

protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)

    {

        if (e.CommandName == "Select")

        {

            DataList1.SelectedIndex = e.Item.ItemIndex;

            databind();

            GridView GV = (GridView)DataList1.Items[e.Item.ItemIndex].FindControl("GV");

            string SqlStr = "select * from 订单表 where 货单编号='" + DataList1.DataKeys[e.Item.ItemIndex].ToString() + "'";

            GV.DataSource = n.DT(SqlStr);

            GV.DataBind();

        }

        if (e.CommandName == "Del")

        {

            string ID = DataList1.DataKeys[e.Item.ItemIndex].ToString();

            string SqlStr;

            SqlStr = "delete from 送货信息表 where 货单编号='" + ID + "'";

            n.ExeSql(SqlStr);

            SqlStr = "delete from 订单表 where 货单编号='" + ID + "'";

            n.ExeSql(SqlStr);

            databind();

        }

    }

5.3.4留言管理

 

 

实现代码:

    protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)

    {

        if (Session["admin"] != null)

        {

            TextBox T = ((TextBox)DataList1.Items[e.Item.ItemIndex].FindControl("txtEdit"));

            string SqlStr = "update 留言表 set 回复内容='" + T.Text + "',回复日期='" + DateTime.Now + "',回复用户='" + Session["admin"].ToString() + "' where 留言编号='" + DataList1.DataKeys[e.Item.ItemIndex].ToString() + "'";

            n.ExeSql(SqlStr);

            DataList1.EditItemIndex = -1;

            databind();

        }

    }

    protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)

    {

        if (e.CommandName == "ReSent")

        {

            DataList1.EditItemIndex = e.Item.ItemIndex;

            databind();

        }

        else if (e.CommandName == "Del")

        {

            string SqlStr = "delete from 留言表 where 留言编号='" + DataList1.DataKeys[e.Item.ItemIndex].ToString() + "'";

            n.ExeSql(SqlStr);

            databind();

        }

    }

    protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)

    {

        if (Session["admin"] == null)

        {

            Button btnReSent = (Button)e.Item.FindControl("btnReSent");

            Button btnDel = (Button)e.Item.FindControl("btnDel");

            btnReSent.Visible = false;

            btnDel.Visible = false;

        }

    }

 

 

你可能感兴趣的:(基于asp.net在线购物网站系统毕业设计)