.
网上书店系统建设实施、运行与维护
武伟 曹晓宾 赵梦飞 李玉国 开发平台
服务器:IIS;
数据库: Sql Server 2000;
平台:Microsoft Visual Studio 2005 操作系统:windows XP 一、系统各组件实现 用户表示层
在用户表示层中主要是一些相关的页面。该层对应的页面应该放在WEB应用目录根目录下。
1.网上书店首页:
本页面分为上下2个部分。
上面的部分是个万年历,从万年历上可以查询各种各样的时间,节日,农历,节气等信息,此晚年里是从网上找到的一段脚本script脚本代码,美观大方,非常使用。
下面的部分是登陆和注册页面,主要实现登陆和注册功能。
登陆有2种情况,一个是管理员登陆,另一个是客户登陆,管理员登陆后的页面是一些后台的操作,而客户登陆后的页面是图书列表及收藏夹和购物车还有1些评论。
注册有各种信息的输入,在用户名一栏中,比如数据库中已经存在了一个用户名,如果一位客户申请的时候写了一个一模一样的用户名,则在点击旁边的“检查用户名是否存在”的按钮后会出现“此用户名已经存在”,提示重新输入一个其他的用户名。 (1)注册的主要的代码如下
protected void btnAdd_Click(object sender, EventArgs e) {
Accountmod.AccountId = tbusername.Text.Trim(); Accountmod.AccountPwd = tbpwd.Text.Trim(); Accountmod.Auth = \
Accountmod.Email = tbEmail.Text.Trim(); Accountmod.Logintimes = 0;
Accountmod.LogIp = Request.ServerVariables[\ Accountmod.Telephone = tbphone.Text.Trim(); Accountmod.TrueName = tbTruename.Text.Trim(); Accountmod.Sex = RadioButtonList1.SelectedValue; Accountmod.Balance = 0;
lbshow.Text = \用户注册成功!\ Accountbll.Add(Accountmod); Panel1.Visible = false; }
protected void btnCheck_Click(object sender, EventArgs e) {
整理版
.
DataSet ds = Accountbll.GetList(\ if (ds.Tables[0].Rows.Count == 0) {
lbshow.Text = \该账户可以使用\ btnAdd.Enabled = true; } else {
lbshow.Text = \该账户已被占用!\ btnAdd.Enabled = false; } }
2.图书详细信息显示:
本页面是客户登陆成功后的页面,上面会显示出各种图书的列表,本页面还包括加入购物车,加入收藏夹,查看购物车,查看收藏夹,图书详细信息以及图书评论等内容。 当用户对某本书感兴趣的时候,可以在对应的图书图片下点击图书详细信息按钮,
在弹出的页面上就会显示此图书的具体内容。具体代码如下:LinkButton lb =
(LinkButton)e.Item.FindControl(\
lb.Attributes.Add(\ 可以看出,系统是根据书本id找到对应的详细信息的。
用户还可以把书放进购物车中,但只局限于下次找此书在此操作的电脑上,如果想在任何电脑上都能看见你的收藏的话,就将此书放入收藏夹中,以便下次可以很方便的找到你想要找到的图书信息。
(1)实现的主要代码如下:
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) {
modbookinfo = bllbookinfo.GetModel(Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value));
lbsum.Text = (Convert.ToDecimal(lbsum.Text) + Convert.ToInt32(((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].FindControl(\* modbookinfo.Price).ToString();
EBook.BLL.OrderInfo bll= new EBook.BLL.OrderInfo();
EBook.Model.OrderInfo model=new EBook.Model.OrderInfo();
string bookid= GridView1.DataKeys[e.RowIndex].Value.ToString(); string bookname=GridView1.Rows[e.RowIndex].Cells[0].Text.Trim();
int bookNum
int.Parse(((TextBox)GridView1.Rows[e.RowIndex].Cells[3].FindControl(\
if (ViewState[\
整理版
=
.
{
int orderid = Convert.ToInt32(DateTime.Now.ToString(\ //订单编号
ViewState[\
}
model.BookId = Convert.ToInt32(bookid); model.BookName = bookname;
model.OrderId = ViewState[\
model.OrderIP = Request.ServerVariables[\ model.OrderPerson = Session[\ model.Price = Convert.ToDecimal(modbookinfo.Price); model.OrderTime = DateTime.Now; model.BookNum = bookNum; bll.Add(model);
EBook.BLL.OrderInfo blldingdan = new EBook.BLL.OrderInfo(); GridView2.DataSource = blldingdan.GetList(\ViewState[\
GridView2.DataBind();
}
protected void DataList1_SelectedIndexChanged(object sender, EventArgs e) {
}
protected void btnchakan_Click(object sender, EventArgs e) {
if (Session[\
Response.Write(\language=javascript>alert('请先把书籍添加进购物车!');\
}
GridView1.Visible = true;
string cart = Session[\ cart = cart.Substring(0, cart.Length - 1);
DataSet ds = bllbookinfo.GetList(\
GridView1.DataSource = ds; GridView1.DataBind(); }
整理版
+
.
protected void btnqingkong_Click(object sender, EventArgs e) {
Session.Abandon(); Session[\ }
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e) {
Label lbid = (Label)e.Item.FindControl(\
LinkButton lbk = (LinkButton)e.Item.FindControl(\ lbk.Attributes.Add(\ LinkButton link = (LinkButton)e.Item.FindControl(\
link.Attributes.Add(\ LinkButton lb = (LinkButton)e.Item.FindControl(\
lb.Attributes.Add(\ }
protected void GridView2_RowDeleting(object sender, GridViewDeleteEventArgs e) {
EBook.BLL.OrderInfo dele = new EBook.BLL.OrderInfo();
string dingdanid = GridView2.DataKeys[e.RowIndex].Value.ToString(); //订单的ID
dele.Delete(int.Parse(dingdanid));
GridView2.DataSource = dele.GetList(\ GridView2.DataBind();
Response.Write(\订单取消成功~');\ }
protected void Button2_Click(object sender, EventArgs e) {
Session.Abandon(); Response.Write(\
language='javascript'>window.location.href='Default.aspx';\
}
protected void Button1_Click(object sender, EventArgs e) {
Response.Write(\
language='javascript'>window.location.href='collect.aspx';\
}、
3.购物车订单计算功能
该功能存在于客户登陆后的图书列表页面,当用户点击加入购物车后,然后点击查看购物车,在这部分表格中会显示购买数量,客户可以自己输入数量,然后点击确认购买,系统
整理版
.
会将计算的结果显示在页面上,而且会将其转发到后台的订单处理页面,以便管理员一目了然确认发货。
(1)实现主要代码如下:
modbookinfo = bllbookinfo.GetModel(Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value)); lbsum.Text = (Convert.ToDecimal(lbsum.Text) + Convert.ToInt32(((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].FindControl(\* modbookinfo.Price).ToString(); 4.购物车取消购买功能: 本功能是用户在点击购买后计算价格的时候,突然不想买了,则用户可以点击取消购买按钮,每个书本的后面都对应有取消购买按钮,点击了次按钮后,系统会自动将价格减去。 (1)关键代码如下:
EBook.BLL.OrderInfo dele = new EBook.BLL.OrderInfo();
string dingdanid = GridView2.DataKeys[e.RowIndex].Value.ToString(); //订单的ID
dele.Delete(int.Parse(dingdanid));
GridView2.DataSource = dele.GetList(\ GridView2.DataBind();
Response.Write(\订单取消成功~');\ 5.管理员后台管理页面: 本页面是管理员登陆后台操作界面之后进行各种管理活动的页面,包括:用户管理(添加用户、查看用户),图书管理(新书上架、图书查看、图书统计),订单管理(订单查看、订单统计),评论管理(主要包括查看图书评论),最后一项是退出系统。 在树状列表上面,可以获取用户名所对应的真实姓名,主要代码为:lbtruename.Text = Session[\ (1) 用户管理: 5.1.1添加用户,本功能不是添加普通客户,而是添加管理员,包括管理员的权限,姓名,性别等一些信息。 5.1.2 查看用户,查看的是所有人的用户,包括客户和管理员,以表格的形式方便管理员查看,并且进行分页显示。 5.2 图书管理 5.2.1 新书上架,发布新书的信息,包括书名,出版社,作者,图片,图书介绍以及价格,这样就会在客户的页面显示新增的图书信息 5.2.2 图书查看,以表格形式展示了所有数据库存在的图书,以及他们的各种信息,并且进行了分页显示 5.3 订单管理 5.3.1订单查看,以表格形式将客户的订单显示出来,并显示是否发货,点击发货按钮,在是否发货一栏下就会自动改成已发货,这样,管理员就可以一幕了然的知道订单的信息了,此表格也进行了分页显示; 5.4 评论管理 5.4.1 查看评论,管理员可以查看用户所发表的评论,如果评论的内容过于低俗和肮脏,管理员可以将之删除; 5.5 退出系统
整理版
.
退出管理员界面,重新回来登陆界面
整理版