随着Internet的兴起,网络已经成为现代人生活中的一部分,越来越多的人喜欢在网上交易。本系统就是一个基于B/S模式的网络化的图书销售管理系统,采用的是ASP.NET技术,实现了用户注册信息管理、用户信息管理、图书销售点管理、图书信息管理、客户订单管理、购物信息管理,库存管理,消息管理等模块。通过测试,基本实现了这个集成书籍管理、网上定购等功能于一体的图书销售管理系统。在Internet上通过它用户可以突破时间和空间的限制来实现网上购书,有效地缩短了图书流通发行环节,将广大读者、图书、出版者、发行者紧密地结合在一起,大大提高了图书流通率。它有着经营成本低、库存是虚拟的、用户检索方便、地域限制少等特点。
关键词 **:**图书销售;管理系统;ASP.NET;C#
2.1 目的概述
在互联网日益发展的今天,网上购物已经不是一件什么新鲜的事物,商家为了能够保证自己的收入,除了通过发布广告以外,常常还会提供网上商店等功能,使用户能够通过网络选购商品,这样做既方便用户,又可以为自己的网站增加额外的利润。本系统就是当前流行的网上商店的一种形式,是一款基于ASP.NET技术来开发的一个比较完善的集成书籍管理、网上定购等功能于一体的图书销售管理系统。
2.2 B/S模式的图书销售管理概述
2.2.1 B/S结构
本系统采用的是B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(C#、VBScript...)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows XP/Windows 2003将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序将是巨大的进步。
2.2.2 系统开发采用的技术及系统配置
1.系统开发的技术简介
本系统的开发采用的开发技术是ASP.NET。Microsoft Visual Studio .NET是Microsoft公司新一代的软件开发平台,也是.NET FrameWork的重要战略产品。ASP.NET作为 .NET的组成部分之一,是Internet和Intranet开发Web应用程序的新一代开发工具,正在被广大的程序员使用。
- ASP.NET的结构
在ASP.NET中,所有Web客户端都通过Microsoft Internet信息服务(IIS)与ASP.NET应用程序通信。IIS对客户端的请求进行解密并验证请求是否合法(如果"允许匿名"设置为True,则不进行身份验证)。如果请求合法,则IIS会查找所请求的资源(如ASP.NET应用程序)。当客户已被授权,IIS会将客户请求通过进程传到ASP.NET运行引擎,然后返回适当的资源,ASP.NET的结构如图1所示。
图1 ASP.NET的结构图
- ADO.NET的介绍
ADO.NET是Microsoft公司新推出的.NET框架中用户数据访问的组件。ADO.NET是在用与直接满足用户开发可伸缩应用程序需求的ADO数据访问模型的基础上发展而来的。它是专门为Web设计的,并且考虑了伸缩性,无状态性和XML的问题。
- 系统开发所需的软件
系统运行的操作系统平台是Windows Server 2003,在开发中所用到的软件有:Microsoft Visual Studio .NET 2003,Microsoft SQL Server2000,Macromedia Dreamweaver MX 2004。
- 系统的配置
① 一个Web站点可以有多个应用程序运行,而每一个应用程序用唯一
URL来访问,所以首先利用IIS开发应用程序的目录为"虚拟目录"。各个应用
程序的"虚拟目录"可以不存在任何物理上的关系。所以要运行该系统还需要将工程文件考入"C:\Interpub\wwwroot"目录下,然后在IIS中建一个"虚拟目录",并命名为"BookSalesManagementSystem_zhou"。
② 本系统采用的Microsoft SQL Server2000作为数据库服务器,所以还要打开"企业管理器"把以下两文件"BookSalesManagementSystem_zhou.mdf与dbBookSalesManagementSystem_zhou.ldf"附加到数据库中。
③ 配置系统的Web.config,.NET平台提供了一个统一的web开发平台,新建一个空白解决方案,在解决方案中自动生成一个Web.config,在这里面还要设置数据库连接信息,添加如下语句。
......
<appSettings>
<add key="connStr" value="server=localhost;database=dbBookSalesManagementSystem_zhou;uid=sa;password=5522618"/>
</appSettings>
<system.web>
......
2.2.3 图书销售管理的概述
利用Internet来销售商品或提供服务,已经成为电子商务商品交易的新选择,网上交易也慢慢成为一种潮流,为适应这种电子商务的要求,为此开发了在线图书销售管理系统。本系统的主要目的就是售书交易的网络化管理,使图书销售工作更加容易,从而提高了工作效率,降低了管理成本。
5.1 系统页面结构图
下图展现了该系统所有功能模块中涉及到的页面之间的逻辑关系,其中的各个功能模块并不一定代表一个页面,下面简要介绍这些功能模块在网页页面中的结构图,如图5所示。
图5 系统页面结构图
5.2 系统设计与实现
5.2.1 系统首页面
1.系统首页面给我们一目了然的感觉,其布局可以分为三块,分别是左、中、右。在左边部分的上角,有一个图书收缩引擎,下面还有图书分类浏览,图书销售点查询,免费电子阅览室和一个日历。在中间部分,从上到下分别是一个图书新闻发布栏,最新图书展现和一个客户评论和留言栏。在右边部分分别是,系统登录页面,畅销图书浏览,和友情连接,其结构图如图6所示。
图6系统首页结构图
2.把系统首页分为了三块,各块又有各自的功能。现将按照从左到右,从上到下的顺序简单阐述一下各部分的作用,以下将分别叙述。
3.图书搜索引擎,是为客户提供的一个搜索图书的便利,将在以后详细介绍。图书分类浏览的作用是便于客户对书籍进行分类的检索,客户需要那种书籍就可以点击它所属的类别,然后就可以直观地浏览所属类别的所有书籍。图书销售点查询,主要是让客户可以查询售书点和该点有哪些服务,将在以后详细介绍。免费电子书的阅读和下载为客户提供了一些免费的电子书籍,任何已登录本系统的用户且无需登录的都可以浏览、阅读,还可以下载。电子日历查询就只是一个简单的日期查询作用。
4.图书新闻发布栏,主要是让客户能在第一时间了解图书的一些新闻动向,新闻的发布是由管理员在后台上传的,新闻排序是按照时间排列的。最新图书展现,也是一个按照时间的排序将管理员上传的最新的6本书展现出来,这些书都加有链接,客户在已登录后就可以直接点击书的封面就可以查看图书的详细信息,并可以加入购物车中。图书展现,只是一个动态的图片效果,让客户可以大概的了解有哪些书籍。客户留言信息阅读,就是以前已登录本系统的客户对书的评论或者留言,现在客户就可以阅读这些信息。
5.用户登录和用户注册将在以下作详细的讲述。图书排行榜,主要是按照图书的点击率来排序并展现出来的。推荐图书、就是把一些好的书籍展现出来。友情链接,是加的一些与图书相关的超连接。
5.2.2 客户端主要页面的设计与实现
1.图书搜索引擎页面
图书搜索引擎主要是为客户提供一个图书搜索的功能,便于客户查找自己所需要的书籍。在这里,客户可以通过选择下拉列表框中的选项,选择书名,作者名或者出版社三个选项中的任意一个,再在文本框中输入相应的信息后点击确定,就可以搜索到对应的图书信息,页面如图7所示。
图7 图书搜索引擎
实现搜索的主要代码如下:
string connStr = ConfigurationSettings.AppSettings["connStr"];
SqlConnection SqlConn = new SqlConnection(connStr);//连接数据库
SqlCommand cmd = new SqlCommand("", SqlConn);
SqlConn.Open();
if (Session["info"] == null)
cmd.CommandText = "select * from book";
else
{
info = Session["info"].ToString();
sort = Session["sort"].ToString();
if (sort == "作者")
cmd.CommandText = "select * from book where bookAuthor like '%"+info+"%'";//模糊查询
if (sort == "书名")
cmd.CommandText = "select * from book where bookName like '%"+info+"%'";
if (sort == "出版社")
cmd.CommandText = "select * from book where bookPress like '%"+info+"%'";
}
SqlDataAdapter da = new SqlDataAdapter(cmd.CommandText,SqlConn);
DataSet ds = new DataSet();
da.Fill(ds);
DataGrid1.DataSource = ds;
DataGrid1.DataBind();
SqlConn.Close();
2.用户登录页面
用户登录页面,该页面有一个权限区分,主要用于区分系统管理员和普通客户的登录。当登录的帐号是系统管理员时,管理员可以进行图书的后台管理,而普通客户只能进行购书的操作,普通客户只有在注册登录以后方可在网上购书。如果客户还没有登录的帐号和密码,必须先在系统上注册一个。在登录后,可以进入购书的操作,还可以在留言板上留言或发表评论。
已登录的用户可以查看、修改个人信息以及密码修改等操作。用户信息的查看功能在mySelf.aspx页面中实现。用户信息,和密码修改功能在系统窗口self中实现的。
3.用户注册页面
用户注册页面主要用于客户注册,在这个页面中客户要填写用户名,密码,姓名,地址和Email等信息,并且各项信息都不能为空。客户也可以点击修改个人资料和密码。系统管理员对已注册客户的信息可进行确认,可将用户列为正式用户,也可以将其删除。一般注册了的用户默认都是正是用户,前提是管理员没有删除该帐号。客户在注册成功以后,才可登录系统。模块的功能是在createAccount.aspx页面中实现的。
4.购物车页面
购物车页面主要用于客户购书,当客户选定了要购的书以后,可以查看图书的内容简介。在客户已登录的前提下,在搜索到自己所需的书以后,当点击添加到购物车时,可把自己选购的书添加到购物车中。系统默认的是一本书,如果客户要购买多本书,可以点击更改,填写自己所需的书的本数以后,需要点击保存。当然如果客户觉得书不好,可以点击移出,则可把对应的图书从购物车中移出,此功能在shopCart.aspx页面中实现的。在购物车页面上还可以查看自己的注册信息,订单信息和购物车信息。系统管理员在后台还可以查看图书的销售信息,便于统计销售情况,该功能是在manageSale.aspx页面中实现的,页面如图8所示。
图8 客户的购物车
实现购物车的主要代码如下:
if (Session["userId"] != null)
{
SqlConn.Open();
this.SqlCom.CommandText = "select count(*) from cart where orderId=0 and userId="+Session["userId"]+"and bookId="+bookId;
int i = Convert.ToInt32(SqlCom.ExecuteScalar().ToString());
if (i == 0)
{
connStr = ConfigurationSettings.AppSettings["connStr"];
SqlConn = new SqlConnection(connStr);
SqlCom = new SqlCommand("",SqlConn);
SqlCom.CommandText = "select * from book where bookId= "+ bookId ;
SqlConn.Open();
SqlDataReader aReader = SqlCom.ExecuteReader();
aReader.Read();
string price = aReader["bookPrice"].ToString();
aReader.Close();
this.SqlCom.CommandText = "insert into cart (bookId,bookName,quantity,unitPrice,userId) values( "+bookId.ToString() +",'"+lbBookName.Text+"',1,"+price+",'"+Session["userId"].ToString()"')";
SqlCom.ExecuteNonQuery();
this.Alert("《"+this.lbBookName.Text+"》成功添加到购物车中!");
SqlConn.Close();
}
else
{
this.Alert("你已经将《"+this.lbBookName.Text+"》添加到购物车中!");
}
5.客户订单
客户订单管理模块主要包括了查看客户订单,详细订单和处理订单等功能。这些功能分别在manageOrder.aspx,orderDetail.aspx和checkOrder.aspx三个页面中实现的。
客户填写订单,主要是在把选购的书加入购物车以后,需填写的一个订单。目的是为了让管理员了解客户的信息,也是为客户提供一个购书的便利,以下信息客户必须填写。为了方便客户,特为客户提供了多种的支付币种,支付方式和送货方式,客户可以在下拉列表框中选择适合自己情况的方式,主页面如图9所示。
图9 客户填写订单
实现填写订单的主要代码如下:
Session["payer"] = this.txtPayer.Text;
Session["receiver"] = this.txtReceiver.Text;
Session["addr"] = this.txtAddr.Text;
Session["mailCode"] = this.txtMailCode.Text;
Session["billName"] = this.ddlBillName.SelectedValue;
Session["mailType"] = this.ddlMailType.SelectedValue;
Session["payType"] = this.ddlpayType.SelectedValue;
Response.Redirect("confirmOrder.aspx");
6.客户查询图书销售点
图书销售点查询主要是为客户提供一个查询售书点的平台,客户首先可以在地图上看到售书点的分布,然后在下拉列表框中选择所在地,就可以在下面的文本框中查看到销售点。再在下一个下拉列表框中选择销售点,还可以看到该销售点为客户提供了那些服务。既方便客户购书也方便各地售书点之间的联系,如果出现某个销售点的销售供不应求,而有些点库存又很多,那么就可以及时的通告对方,通过协商后在实现送书服务,并可以收取一定的服务费或者免费。客户查询销售点是在clientAddress.aspx页面中实现的,后台管理员管理是在manageAddress.aspx中完成的。
5.2.3 后台管理主要页面的设计与实现
- 管理员查询图书信息
管理员在首页通过管理员帐号登录以后,就可以进入后台管理。查询图书信息主要可以查看图书的编号,图书作者,单价等信息。图书信息管理模块中包含图书类别信息管理和图书信息管理两个小模块。在图书类别信息管理小模块中系统管理员可以对图书类别信息管理进行更改,其功能是在editBook.aspx页面中实现的。而图书信息管理模块提供了图书信息的添加修改删除等功能。其中添加是在addBook.aspx中实现的,可以添加图书名,作者,类型,出版社,进价,单价,以及上传图片和书的简介等信息。删除操作是在deleteBook.aspx中实现的,系统管理员管理操作是在manageBook.aspx中实现的。
系统管理员还可以查看当前图书库存信息。该模块中包含的页面是editBook.aspx,系统管理员可以在此页面修改库存量,同时可以提供修改图书信息的操作,可对图书信息进行修改更新。
- 管理员上传新书
该页面主要用于系统管理员在后台添加新的图书信息,图书名、作者、类型、出版社、进价、单价、数量、图书路径、上传图片,书的内容简介等信息,界面如图10所示。
图10 管理员上传图书
实现管理员上传图书的主要代码如下:
string filePath="", mFileName, mPath,fileExtName;
System.Text.StringBuilder strMsg = new System.Text.StringBuilder("");
if("" != fileUp.PostedFile.FileName)
{
filePath =fileUp.PostedFile.FileName;//取得文件路径
mPath=Server.MapPath("images/");
mFileName=filePath.Substring(filePath.LastIndexOf("\\")+1);; strMsg.Append("images\\" + mFileName);//获得文件名fileUp.PostedFile.SaveAs(mPath + mFileName); strState.Text = strMsg.ToString();
}
3.管理员查看客户订单
系统管理员在后台可以查看客户订单,主要包括订单的ID,用户ID、订购时间、订单金额、付款状态,并且在最后一项中点击继续可以查看订单的详细信息。在订单详细信息页面中可以查看订单的付款人,收货人、收货地址、支付的的币种、支付的方式、邮寄的方式、付款的方式和发送状态等信息。当然系统管理员还可以处理订单,主要是要更新付款状态和发货状态。
4.图书新闻发布栏
图书新闻发布栏主要是用于管理员发布一些图书新闻的信息。管理员在后台可以录入一些新书的目录和书的内容简要。客户则可以在系统的首页阅读这些新闻摘要,让客户可以及时地了解这些图书的信息,既方便客户也可以向客户在最短的时间内了解我们的图书,便利了销售工作的进行,其主要的页面如图11所示。
图11 管理员添加新闻
实现图书新闻发布的主要代码如下:
string connStr = ConfigurationSettings.AppSettings["connStr"];
SqlConnection SqlConn = new SqlConnection(connStr);
SqlConn.Open();
SqlCommand cmd = new SqlCommand("",SqlConn);
cmd.CommandText = "insert into bookNews(newsTitle, newsContent) values('" + this.txtTitle.Text + "','" + this.txtContent.Text + "')";
cmd.ExecuteNonQuery();
Alert("发布成功,请继续发布!");
this.txtTitle.Text = " ";
this.txtContent.Text = " ";
⒌ 客户信息管理页面
客户信息管理主要是为客户和系统管理员提供一个交流的平台,让管理员了解客户对图书的评论、或者提出的意见。同时只要登录本系统的所有用户都可以看到以前客户的评论和留言,这些信息是按时间排序的。当然,管理员在后台可以查看详细的信息,并且可以删除这些信息,也可以对一些需回复的信息进行回复。该功能是在index.aspx页面中实现的,系统管理员在后台对客户评论与留言信息进行阅读、删除、回复,而且还可在后台发布图书新闻该功能是在manageMessage.aspx页面中实现的,主要的页面如图12所示。
图12 客户信息管理页面
实现图书新闻发布的主要代码如下:
Label commentId = (Label)e.Item.FindControl("ID");
string sqlCom = "delete bookComment where commentId ="+commentId.Text;
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["connStr"].ToString());
SqlCommand cmd = new SqlCommand(sqlCom,conn);
conn.Open();
try
{
cmd.ExecuteNonQuery();
this.BindData();}
catch(SqlException err)
{
Response.Write(err.ToString());}
finally
{
conn.Close();
}
}