目录
一、引言 ......................................................................................................... 1 二 、需求分析 ................................................................................................ 2
(二)可行性分析 .......................................................................................................... 3 (三)功能需求分析 ...................................................................................................... 3 (四)开发环境需求 ...................................................................................................... 4
三、系统设计 .................................................................................................. 5
(一)系统功能模块图 ................................................................................................... 5 (二)系统活动图 .......................................................................................................... 6 (三)系统用例图 .......................................................................................................... 8
四、数据库设计............................................................................................... 9
(一)E-R图模型 ........................................................................................................... 9 (二)数据库模型图 ..................................................................................................... 10
五、系统详细设计与实现 ................................................................................ 11
(一)数据库表设计 ...................................................................................................... 11 (二)前台主页面的搭建 .............................................................................................. 14 (三)后台的主框架的搭建 ........................................................................................... 15 (四)后台的主要基本功能与实现 ................................................................................ 16
六、系统测试 ................................................................................................ 28 七、小结 ....................................................................................................... 28 八、参考文献 ....................................................................... 错误!未定义书签。
Word文档
`
贝贝宠物网系统
摘要:在Internet飞速发展的今天,互联网成为人们快速获取、发布和传
递信息的重要渠道,它在人们学习、工作、生活等各个方面发挥着重要的作用。因此建设在Internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。
本文详细介绍了宠物的功能和结构,并论证了的设计方案,简要介绍了使用的开发工具Microsoft Visual Studio 2008以及涉及到的等相关技术,并以在线文章发布子系统开发的顺序详细介绍了系统分析,系统设计,系统实施的开发过程, 然后,展示了子系统所实现的功能及部分界面在介绍某些关键技术的同时,还给出了关键源程序代码。最后对本系统的不足和本人在开发中的认识和感想进行了总结。
关键词:互联网; 数据库; 宠物
一、引言
贝贝宠物公司自创始以来不断的发展壮大,业务也越来越繁忙,雇佣数量较多的工作人员同时也难以避免客户在购买宠物时造成宠物翻阅损耗等一系列费用,当今网络所显现的超常信息量、无时空局限、传递快捷、操作灵活等优点吸引着越来越多网民,同时随着经济的发展,人民生活节奏也越来越快,所以网上购物吸引了越来越多的人。宠物网正是为了满足这种需求而研发的中小型电子商务系统 。
贝贝宠物网系统是基于B/S模式的小型电子商务系统,能够满足中小型宠物商店的网上销售宠物用品的需要。搭建宠物网极为简单只需要一台PC机,一根网线,即可进行网上交易。宠物网基本上满足了中小型宠物商店的网上销售需求,其主要功能包括宠物展示、宠物用品展示、购物车、收银台、会员管理、订单查询、新闻浏览、宠物护养常识浏览、宠物管理、用户管理、订单管理。宠物展示主要实现宠物的重点推荐、明星宠物、宠物分类查询、
Word文档
`
宠物用品销售排行榜等功能;购物车功能给每个用户建立了一个相对应的唯一存放选中宠物籍存放的空间;收银台提供了客户付账的功能,当顾客决定购买购物车里的宠物籍时,向收银台提交订单;会员管理为每一位注册用户提供了注册、登陆;后台的宠物管理是为管理员提供修改、添加删除宠物信息的功能;用户管理实现的功能有查看用户信息、消费总额;订单管理主要负责查看客户的发货执行情况;新闻管理方便管理员向首页新闻页面里添加公司新闻;护养常识是为了方便会员及大众更好的饲养宠物、相应的减少宠物不必要的伤害等。贝贝宠物网的设计充分考虑了用户的视觉感受,努力做到界面简单明了,功能相对完善。
后台开发充分考虑了使用软件的用户可能对计算机软件并不是很了解,所以在设计的过程中添加了许多必要的提示和说明。总之贝贝宠物网将以.Net技术为基础,实现宠物信息的发布、购物、用户管理、宠物后台管理等一系列的功能,力争成为广大客户带来更多的便利,为贝贝宠物公司带来更高的销售额。
二 、需求分析
(一)项目背景
宠物正在成为不少家庭里的新成员。随着养宠物的家庭不断增多,宠物经济也越来越受人关注。
目前从养宠物的数量和消费能力上看,、、、和已经成为我国五大“宠物城市”,在这些城市。而天津、、、、等城市,宠物普及程度也相当高。不少业人士表示,随着日前颁布的《宠物条例》中免去每年宠物年检费用的政策出台后,可能会有更多人加入养宠物的行列,中国宠物市场的潜力仍待挖掘。
如此大的市场自然吸引了众商家的眼球,围绕“宠物赚钱”(指宠物交易本身)和“赚宠物的钱”这两个主题,市场可提供的项目越来越多,为宠物衣食住行、生老病死支出的费用也在逐年增加,个别已经面临服务升级的项目收费更是高得惊人。由于饲养宠物是一个循环消费的过程,消费者需要不停地支出,因此宠物产业成为投资者非常看中的热点行业。
有关专家表示,我国目前至少有宠物1亿只(条),围绕宠物发生的消费至少在150亿元以上。同时,“宠物热”还带动了宠物经济,围绕宠物服务和宠物用品大做文章的人成倍增加,从宠物食品、宠物医疗,到宠物美容,甚至还出现了宠物婚介、殡葬、寄养、宠物SPA、宠物旅游团等新兴服务。然而,由于行业缺乏监管和规,“暴利”、欺诈现象严重,给行业发展蒙据了解,在宠物消费中,食品占据最大份额,其次是医疗和宠物用品,许多投资者甚至
Word文档
`
认定生产和经营宠物用品只赚不赔,纷纷抢食。宠物行业除了收费充满暴利外,由于越来越多的投资者加入到快速增长的宠物市场,又缺乏有效的监管和规,使整个市场陷入无序混乱的状态。
(二)可行性分析 1.技术的可行性
贝贝宠物网系统采用了当前的主流计算结构—B/S模式进行开发,前台开发工具选用Microsoft Visual Studio 2008。它是一种可视化的、面向对象的Windows开发语言,具有易用、通用和开发效率高的特点。后台的数据库开发工具选用了Microsoft SQL Server 2005,它能够处理大量数据,同时保持数据完整性并提供许多高级管理和数据分配功能,它又在数据库平台的安全模块方面做了重要的增强,在加强数据安全性方面提供了更多精确、灵活的控制方法,并定义了帮助建立支持安全计算的必要步骤,同时帮助部署和维护一个安全环境。这两种开发工具功能强大,有较好的接口,作为本系统开发工具是可行的。
2. 经济可行性
随着计算机技术的飞速发展,计算机在企业管理中应用的普及,实现了企业业务管理的高效化、系统化、规化、自动化。同样随着宠物业的崛起,贝贝宠物公司已经成长为一个跨地区的大公司,并且公司的业务已遍布全国。而传统的经营模式已无法适合当今的庞大的数据处理和精确的运算需求。所以一套精美完善的宠物网系统是提高工作效率节省人力物力财力的有效解决方案。拥有自己的一套特色的宠物系统是非常必要的。它可持续使用并能随着时代和工作的需求不断更新,一期投入终身受用,按长期的使用计算,开发系统的造价平均到每年与传统式的管理方式的年耗资本相对比,性价比是可行的。开发这套系统的经济可行性是很高的。
(三)功能需求分析
根据调查,宠物管理主要包括的浏览者、会员、管理人员三个方面。宠物浏览者的需查询该的宠物和宠物商品信息,想要购买所需的东西,则需要注册登录,成为会员;会员的需查询该的宠物和宠物商品以及购买所需物品,当然如果密码丢失还可以找回密码;管理人员可以对员工、会员、宠物及宠物用品进行管理。因此我们的分为前台后台两个方面进行设计的,前台主要是产品的展示,供浏览者和会员查看和购买商品,而后台主要是管理员登陆的,管理员要从后台维护的所有信息,包括会员管理,宠物管理,宠物用品管理,员工管理,订单管理等等。
Word文档
`
前台需要实现的主要功能有:
1.宠物及相关用品信息的浏览,明星宠物,热销用品的展示及详细信息浏览。 2.护养常识,公司新闻及公司介绍的浏览。
3.宠物用品的购买包括对购物车信息的修改,订单信息的填写及提交。 4.会员注册,登录,若丢失密码时找回密码。 后台系统管理员对数据的处理及维护: 1.系统设置
对数据库备份与还原,操作日志的查看,管理员信息的查询,详细信息查看,新增管理员,删除不用的管理员信息,对管理员密码的修改。
2.基本资料管理
员工信息管理,供应商信息管理,可以对该项目中进行查询(包括模糊查询),添加,修改,删除及导出数据等操作
3.销售管理
今日订单提醒,能够及时获取当日的订单信息,及时的对订单进行发货(包括单单发货和多单发货)。宠物销售管理,记录宠物的销售情况,对销售记录进行添加,修改,删除等操作。宠物用品销售管理,记录用品的销售情况,对其销售记录进行添加,修改,删除等操作。当对订单发货或者是添加销售记录是均会对库存进行判断。只有在库存量大于订单订购量或销售量时才能操作成功。
4.库存信息管理
宠物基本信息管理,添加新上架的宠物信息,删除不需要的宠物信息,发现错误信息能进行修改,也可以导出宠物信息。宠物用品信息管理,可以对新上架的用品进行及时添加,修改数据,对已过时,或长久不用的用品信息进行删除,也可以导出宠物用品信息。
5.咨询中心模块、
包括公司新闻信息维护和护养常识信息维护。包括公司新闻信息维护和护养常识信息维护。员工可以通过此模块更清晰的了解公司的最新动态,用户则可以看到很多最新上市的商品,以及一些关于宠物的趣闻和养护知识。
(四)开发环境软件需求
操作系统:操作系统:Windows XP/ Windows 2003。 数据库:SQL Server 2005。
开发工具:Microsoft Visual Studio 2008。
Word文档
`
辅助开发工具:Photoshop CS2、Flash8。
三、系统设计
(一)系统功能模块图
根据上述系统功能的需求分析,按照结构化程序设计的需求,得到如下的系统模块图。 1.前台主要分为会员管理,商品展示,购买流程,新闻浏览四大功能模块。如图3-1所示。
其中会员管理模块包括了会员登录、会员注册、会员找回密码、注销用户等功能。商品展示主要是对宠物及宠物用品进行展示,包括热销宠物,促销商品等的分类展示及详细介绍。购买流程主要针对会员购买商品时所进行的一系列的操作。包括宠物用品的详细介绍及选购,购物车管理,填写订单并提交。新闻浏览模块主要介绍公司新闻,公司简介及宠物的护养常识。
2.后台主要分为基本信息管理,销售管理,库存管理个系统管理四大功能模块,如图3-1所示。
其中基本信息管理模块主要包括会员的基本信息,供应商信息管理,公司新闻的发布,护养常识的管理等模块。销售管理模块主要包括对订单的管理,宠物销售记录的管理和宠物用品销售记录的管理。库存管理模块主要包括宠物信息的管理和宠物用品信息的管理。系统管理模块主要有对数据库的备份与还原,操作日志的记录。
Word文档
`
贝贝宠物网前台后台会员管理商品展示购买流程新闻浏览基本信息管理销售管理库存管理系统管理会员登录会员注册找回密码用品展示宠物展示商品选购加入购物车提交订单公司新闻护养常识公司新闻护养常识员工信息维护供应商信息维护订单管理宠物销售信息护用品销售信息维护宠物信息维护用品信息维护数据备份数据还原操作日志图3-1功能模块图
(二)系统活动图
1.管理员活动图,如图3-2所示。
Word文档
`
进入系统管理宠物信息管理宠物商品信息管理员工信息管理会员信息退出系统
图3-2管理员活动图
2.会员活动图,如图3-3所示。
进入系统购买商品购买宠物修改密码查看网站信息退出系统
图3-3会员活动图
3.一般用户活动图,如图3-4所示。
Word文档
`
进入系统注册用户查看网站信息退出系统
图3-4会员活动图
(三)系统用例图
1.管理员用例图,如图3-5所示
管理员用例图指出管理员进入系统后,可进行的操作的信息。
系统登陆会员信息查看用品信息查看员工信息查看宠物销售管理宠物信息管理用品销售管理管理员订单信息管理宠物养护信息新闻信息维护数据库管理查看操作日志
图3-5管理员用例图
2.会员用例图,如图3-6所示
Word文档
`
会员注册会员登录宠物信息查看用品信息查看会员购买用品护养常识阅读公司新闻阅读
图3-6会员用例图
四、数据库设计
数据库的设计经过我们的分析,将系统中涉及的功能表现出来,其中表的建立尤为重要。 数据库表的建立不仅是字段的建立,表与表之间的关系也不可或缺。主键、外键的关系需要谨慎建立。创建外键关系即是将各表与表之间联系起来。表与表之间一旦脱离了外键之间的关系而独立,那么系统之间的功能也将难以完成。
(一)E-R图模型
E-R图简洁的反映出整个流程的概况和系统中所有实体之间相对应的关系,综合了管理员、员工、会员、一般用户在整个系统中的联系和各自的安排把系统的部联系明了化。
Word文档
`
N购买1会员1购买或订购N宠物用品NM宠物MM供应N供应商N供应M管理N员工NN管理管理1管理员1管理1
图4-1 E-R模型图
(二)数据库模型图
图中显示了数据库中有哪些表,各表在数据库中的联系,即他们之间的主外键关系。
员工信息表PK IDEmployeeIDEmploymentClassEmployeeNameEmployeeSexEmployeeDepartRemarkImage供应商信息表宠物信息表PK,FK1PK FK1 IDPetIDPetNameOtherNameHeightTypeLifeVarietyPetFunctionSource_areaDeta_introducePetSupplierIDStockPetImagePriceRemarkPKPK IDPetSupplierIDPetSupplierNamePetSupplierAddressPetSupplierEmailPetSupplierClassIDPetSupplierTelPetSupplierClassRemark商品销售表PK IDSellIDCustomerIDGoodsIDAmountTotalDuesRecordManIDRecordTimeModifyManIDModifyTmieRemarks宠物销售表PK,FK1 FK1 IDSellIDCustomeIDPetIDAmountTotalDuesRecordManIDRecordTimeModifyStaffIDModifyDatetimeRemarks商品表PK,FK1,FK2IDPKGoodsIDPKGoodsName FK1 GoodsClassPriceGoods_memPriceUnitPetSupplierIDStockGoodsfeaturesStockTimeGoodsImageRemark订单表PKFK2FK1 FK3 OrderIDGoodsNameCusNamePriceTotleCountOrderTimeMobileTelConsigneeConsiAdressPostCodeDeliverTypePayTypeIsSend客户信息表PKPK CusIDCusNameCusPwdCusSexEmailTelQQCusAddressLoginDateRemarksPostCodeLoginDataCusTypeIDIntegral送货方式表PKPK IDDeliverTypeDeliverTypeID付款方式表PKPK 新闻表PK ID管理员表FullNameHeadlinePublicationTimeSourceAuthorContentsDescriptionCreateStaffIDCreateDatetimeModifyStaffIDModifyDatetimeImageRemarksPKPK IDUserNameFullNameUserPassword IDPlayTypePlayTypeID养护常识表PK IDMainTainIDFullNameHeadlinepublicTimeSourceContentsDescriptionCreateStaffIDCreateDatetimeModifyStaffIDModifyDatetimeImageRemarks操作日志表PK,FK1 FK1 IDOperatorIDUserNameModuleIDOperationFlagIPAdressIsOperationOperateDatetimeExtends
图4-2 数据库模型图
Word文档
`
五、系统详细设计与实现
(一)数据库表设计
经过分析,系统中建立了数据库PetData,如图5-1所示。
图5-1 PetData数据库
下面是几主要的表:
1. 会员表(CustomerInfo):
表名(中文) 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 说明 会员编号 用户名 密码 性别 QQ 地址 登陆时间 邮编 会员类型 积分 备注 会员表 列名 CusID CusName CusPwd CusSex Email Tel QQ CusAddress LoginDate PostCode CusTypeID Integral Remarks 数据类型 int nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar 表名(英文) 长度 4 50 50 50 50 50 50 50 50 50 10 10 0 小数位 0 0 0 0 0 0 0 0 0 0 0 0 0 标识 是 CustomerInfo 主键 是 允许空 否 否 否 是 是 否 是 否 是 是 是 是 是 默认值 Word文档
`
2. 宠物用品信息表(PetGoods):
表名(中文) 序号 1 2 3 4 5 6 说明 ID 编号 分类 名称 参考价格 会员价 宠物用品信息表 列名 ID GoodsID GoodsClass GoodsName Price Goods_memPrice 7 8 9 10 11 12 13 单位 供应商编号 库存量 特征 进货时间 商品图片 备注 Unit PetSupplierID Stock Goodsfeatures StockTime GoodsImage Remark nvarchar nvarchar nvarchar nvarchar datetime nvarchar nvarchar 10 50 50 50 8 50 1000 0 0 0 0 3 0 0 是 是 是 是 是 是 是 数据类型 int nvarchar nvarchar nvarchar nvarchar nvarchar 表名(英文) 长度 4 50 50 50 50 50 小数位 标识 0 0 0 0 0 0 是 PetGoods 主键 是 允许空 否 是 是 是 是 是 默认值 3. 宠物信息表(PetInfo):
表名(中文) 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 说明 ID 宠物编号 全名 别名 身高 类型 寿命 品种 功能 原产地 详细介绍 供应商编号 库存量 照片 参考价 备注 宠物信息表 列名 ID PetID PetName OtherName Height Type Life Variety PetFunction Source_area Deta_introduce PetSupplierID Stock PetImage Price Remark 数据类型 int nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar 表名(英文) 长度 4 50 50 50 50 50 50 0 50 0 0 50 50 50 50 50 小数位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 标识 是 PetInfo 主键 是 允许空 否 是 是 是 是 是 是 是 是 是 是 是 是 是 是 是 默认值
Word文档
`
4. 订单表(OrderInfo):
表名(中文) 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 说明 订单编号 商品编号 会员名称 订购金额 订购数量 订购时间 手机号 固定 收货人 收货地址 送货时间 送货方式 支付方式 是否已发货 订单表 列名 OrderID 数据类型 int 表名(英文) 长度 4 50 50 50 50 50 50 50 50 200 50 50 50 4 小数位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 标识 是 OrderInfo 主键 是 允许空 否 是 是 是 是 是 是 是 是 是 是 是 是 是 默认值 GoodsName nvarchar CusName Price TotleCount OrderTime Mobile Tel Consignee ConsiAdress PostCode DeliverType PayType IsSend nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar int 5. 商品销售表(GoodsSell):
表名(中文) 序号 1 2 3 4 5 6 7 说明 ID 销售编号 客户编号 商品编号 数量 消费金额 记录人编号 宠物用品销售表 列名 ID SellID CustomerID GoodsID Amount TotalDues RecordManID 8 9 记录时间 修改人编号 RecordTime ModifyManID 10 11 修改时间 备注 ModifyTmie Remarks nvarchar nvarchar 50 0 0 0 是 是 nvarchar nvarchar 50 50 0 0 是 是 数据类型 int nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar 表名(英文) 长度 4 50 50 50 50 50 50 小数位 0 0 0 0 0 0 0 标识 是 GoodsSell 主键 是 允许空 否 是 是 是 是 是 是 默认值 6. 宠物销售记录表(PetSell):
表名(中文) 序号 说明 宠物销售表 列名 数据类型 表名(英文) 长度 小数位 标识 PetSell 主键 允许空 默认值 Word文档
`
1 2 3 4 5 6 7 8 9 10 11 ID 销售编号 客户编号 宠物编号 销售数量 销售金额 记录人员编号 记录时间 修改人编号 修改时间 备注 ID SellID CustomeID PetID Amount TotalDues RecordManID RecordTime ModifyStaffID ModifyDatetime Remarks nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar 50 50 50 50 50 50 50 50 50 50 0 0 0 0 0 0 0 0 0 0 0 0 是 否 是 是 是 是 是 是 是 是 是 是 (二)前台主页面的搭建
前台界面均以黄色为主色调,色彩鲜明,主页面主要展示部分热销宠物和正在促销的宠物用品。同时还具有搜索和会员登录的功能。在个性化设计方面又加了一个小日历小巧玲珑。 页面的搭建采用div/css模式并应用了JavaScript特效。同时还灵活应用了母版和自定义控件。使页面搭建更方便,也使得页面统一美观(如图5-2所示)。
Word文档
`
图5-2 前台主页面
(三)后台的主框架的搭建
色彩采用蓝色为主色调,并以淡蓝色为主,整体给人以活泼,轻松,舒适的感觉(如图5-3所示)。页面的搭建采用div/css和frameset模式,并且应用了JavaScript特效。 左侧导航,各个功能模块一目了然。头部首页可以到前台的贝贝宠物首页,并有前进,后退及刷新等功能。还特意加了一个日期特效,能够清楚知道具体日期。
Word文档
`
图5-3 后台主框架页面
(四)后台的主要基本功能与实现 1.管理员登录
页面色彩与主页面一样同样以谈蓝色为主色调,如图5-4所示。
图5-4 登录界面
该登录界面还具有记住密码的功能,在UI层编写一个BasePage类用来存放公用的代码,从而达到代码的复用性。其主要代码如下所示:
public class BasePage : System.Web.UI.Page {
Public void DoLogin(string paramUserName, string paramPasswor, bool paramPersistCookie) {
StaffManager myBUStaff = new StaffManager();
Word文档
`
try {
myBUStaff.DoLogin(paramUserName, paramPasswor); } catch {
throw; }
if (myBUStaff.ID.Length > 0) {
string UserKey = Guid.NewGuid().ToString();
if (CommonMethod.CurrentUser.ContainsKey(myBUStaff.ID)) {
CommonMethod.CurrentUser[myBUStaff.ID] = UserKey; Session[\"UserKey\"] = UserKey; } else {
CommonMethod.CurrentUser.Add(myBUStaff.ID, UserKey); Session[\"UserKey\"] = UserKey; }
this.Themes = BUSystemInfo.getThemes(myBUStaff.Theme);
this.SetSession(myBUStaff.ID, myBUStaff.UserName, myBUStaff.FullName, myBUStaff.OperatorType, \"\"); System.Web.Security.FormsAuthentication.SetAuthCookie(myBUStaff.UserName, false); this.GetSystemInfo(); if (paramPersistCookie) {
this.SaveCookie(paramUserName, paramPasswor); } } else {
this.ClearCookie();
FormsAuthentication.SignOut(); Session.Abandon(); } } }
protected void btnLogin_Click(object sender, EventArgs e) {
string userName = this.txtUserName.Text.Trim(); string passWord = this.txtPassWord.Text.Trim(); this.LoginSystem(userName, passWord); }
Word文档
`
protected void LoginSystem(string paramUserName, string paramPassWord) { try {
base.DoLogin(paramUserName, paramPassWord, false); if (Request[\"Action\"] != null && Request[\"Key\"] != null) {
string Word = string.Empty;
string UserInfo = Session[\"OperatorID\"].ToString() + \"+\" + paramPassWord; string key = Request[\"Key\"].ToString();
LindonSoft.SubstrateLayer.DALayer.DataCrypto myDataCryto = new
LindonSoft.SubstrateLayer.DALayer.DataCrypto();
myDataCryto.Key = key;
Word = myDataCryto.Decrypto(UserInfo);
Response.Redirect(Request[\"Action\"].ToString() + \"?Action=\" + Word); } else {
Response.Redirect(this.GetBaseUrl() + \"Manager/Main.aspx\", false); } }
catch (Exception myException) {
if (myException.Message == \"密码错误\") {
this.txtPassWord.Focus();
this.lblError.Text = myException.Message; this.lblError.Visible = true; } else {
this.txtUserName.Text = string.Empty; this.txtPassWord.Text = string.Empty; this.txtUserName.Focus();
this.lblError.Text = myException.Message; this.lblError.Visible = true; } } }
(2)数据库备份与还原
备份数据库,可以选择数据库的名称及备份文件的保存路径,如图5-5所示。
Word文档
`
图5-5 备份数据库
选择好数据库及文件保存路径后点击数据备份按钮即可,只需要UI就可以实现数据的连接、加载。主要代码如下:
protected void btnConfirm_Click(object sender, EventArgs e) {
string SqlStr1 = \"Server=.;database=\" + this.DropDownList1.SelectedValue + \";Uid=sa;Pwd=123\";
string SqlStr2 = \" backup database \" + this.DropDownList1.SelectedValue + \" to disk='\" + this.TextBox1.Text.Trim()
+ \".bak'\";
SqlConnection con = new SqlConnection(SqlStr1); con.Open(); try {
if (File.Exists(this.TextBox1.Text.Trim())) {
Response.Write(\"\"); return; }
SqlCommand = new SqlCommand(SqlStr2, con); .ExecuteNonQuery();
Response.Write(\"\"); }
catch (Exception error) {
Response.Write(error.Message);
Response.Write(\"\"); } finally {
con.Close(); } }
还原数据库,可以选择需要还原的数据库以及还原文件的存放路径,如图5-6所示。
Word文档
`
图5-6 还原数据库
主要代码如下:
只需要UI就可以实现数据的连接、加载
protected void btnConfirm_Click(object sender, EventArgs e) {
string path = this.FileUpload1.PostedFile.FileName; //获得备份路径及数据库名称 string dbname = this.DropDownList1.SelectedValue;
string SqlStr1 = \"Server=.;database='\" + this.DropDownList1.SelectedValue + \"';Uid=sa;Pwd=123\"; string SqlStr2 = \"use master restore database \" + dbname + \" from disk='\" + path + \"'\"; SqlConnection con = new SqlConnection(SqlStr1); con.Open(); try {
SqlCommand = new SqlCommand(SqlStr2, con); .ExecuteNonQuery();
Response.Write(\"\"); }
catch (Exception error) {
Response.Write(error.Message);
Response.Write(\"\"); } finally {
con.Close(); } }
(3)宠物信息的维护
包括对宠物信息的查询,模糊查询,添加,修改,删除,批量删除,导出数据等操作。还有针对页面显示而做的一些功能,包括页面显示的行数,跳转页面等。具体实例图,如图5-7所示。
Word文档
`
5-7 宠物信息查询界面
查询时如在宠物编号和名字中均为空白,此时查询的是全部的数据,如果输入容就是按条件查询。具体的实现代码如下:
在UI层获取两个TextBox里面的值(若无值即为空),传到BU层。将查询到的容加载到gridview里面。
protected void btnSearth_Click(object sender, EventArgs e) {
this.myQueryData = new PetInfoQueryData(this.txtPetID.Text.Trim(),this.txtPetName.Text.Trim()); }
public void BindGrid(int paramPageIndex, int paramPageSize) { }
PetInfoManager myPetInfo = new PetInfoManager(); DataSet myDs = myPetInfo.Search(null, this.myQueryData);
this.Master.BindData(this.grdvMessage, myDs.Tables[0].DefaultView); this.BindGrid(1, 10);
Word文档
`
在BU层打开数据库连接并执行sql语句,将执行结果放入到BaseDBCon中,并返回。主要代码如下:
public DataSet Search(BaseDBCon myBaseDBCon, PetInfoQuery QueryData) {
string strQuery = \"SELECT \" + PetInfo.ID_FULL + \……
+ PetInfo .Deta_introduce_FULL }
+ \" FROM \" + PetInfo.TABLENAME + \" WHERE 1 = 1 \";
bool DbCloce = myBaseDBCon == null; Hashtable myParam = new Hashtable();
if (QueryData.PetID.Length > 0) { } ……
DataSet myDs = new DataSet(); try { }
catch (Exception myEx) { } finally { }
return myDs;
myBaseDBCon.Close(DbCloce);
myBaseDBCon.RollBackTransaction(DbCloce);
throw new Exception(myEx.Message + \"\\r\\n SQL:\" + strQuery); myBaseDBCon = BaseDBCon.Instance(myBaseDBCon);
myBaseDBCon.Fill(strQuery, myDs, PetInfo.TABLENAME, myParam); myBaseDBCon.CommitTransaction(DbCloce);
strQuery += \" AND \" +PetInfo.PetID_FULL + \" LIKE PetID \";
myParam.Add(\"PetID\", \"%\" + QueryData.PetID.Replace(\" \", \"%\") + \"%\");
当数据过多存在无用数据时可对数据进行删除,先在gridview的第一列的CheckBox中选中要删除的相,然后点击删除按钮。 主要代码如下:
protected void btnDel_Click(object sender, EventArgs e)
Word文档
`
{
ArrayList Ids = base.GetSelectedIds(this.grdvMessage); }
PetInfoManager myPetInfo = new PetInfoManager(); myPetInfo.BatchDel(null, Ids); this.BindGrid(1, 10);
当需要添加宠物信息时,点击右下角的添加按钮,会转到宠物信息操作页面,如图5-8所示。
录入宠物信息包括宠物编号,全称,别名,类型,原产地,库存量,照片,详细介绍等。宠物编号均由该宠物英文名字的前三个字母加数字组成。
图5-8 宠物信息操作页面
在文本框中输入信息后,点击添加数据首先添加到GridView的控件中,你可以进行数据的核对,核对无误后点击保存即可保存到数据库中,并且返回到宠物信息页面,即可看到刚刚添加的数据。
主要代码如下: UI层:
PetInfoManager myPetInfo= new PetInfoManager(); myPetInfo = this.GetPageValue(myPetInfo);
int returnValue = myPetInfo.InsertPetInfo(myPetInfo); if (returnValue > 0) {
this.Clear();
this.Alert(\"添加成功\",
\"Saved\");base.JsWrite(\"window.location.href='UIPetInfoManager.aspx?IsPageBack=1';window.
Word文档
`
close();\", \"Close\");
}
BU层:
public int InsertPetInfo(PetInfoData myPetInfoData) {
int returnValue = 0;
string sqlQuery = \" INSERT INTO
[PetInfo]([PetID],[PetName],[OtherName],[Height],[Type],[Life] ,[Variety],[PetFunction],[Source_area],[PetSupplierID],[Stock],[PetImage] ,[Price],[Remark],[Deta_introduce])
VALUES ('\" + myPetInfoData.PetID + \"','\" + myPetInfoData.PetName + \"','\" +
myPetInfoData.OtherName + \"','\" + myPetInfoData.Height + \"','\" + myPetInfoData.Type + \"','\" + myPetInfoData.Life + \"','\" + myPetInfoData.Variety + \"','\" + myPetInfoData.PetFunction + \"','\" + myPetInfoData.Source_area + \"','\" +
myPetInfoData.PetSupplierID + \"','\" + myPetInfoData.Stock + \"','\" + myPetInfoData.PetImage + \"','\" + myPetInfoData.Price + \"','\" + myPetInfoData.Remark + \"','\" + myPetInfoData.Deta_introduce + \"')\"; returnValue = this.ExecuteNonQuery(sqlQuery); return returnValue; }
}
如果宠物信息有错误,可以点击gridview中的修改图片,进入到宠物信息操作页面(如图所示),然后对数据进行修改确定信息修改正确后点击保存按钮,修改的数据会直接保存到数据库,然后直接返回到宠物信息页面,数据会直接显示出来。 主要代码如下:
public void SetPageValue(PetInfoManager paramPetInfo) {
this.txtPetID.Text = paramPetInfo.PetID.ToString(); ……
this.Image1.ImageUrl = paramPetInfo.PetImage; if (this.Image1.ImageUrl == \"\") {
this.Image1.ImageUrl = \"../Image/暂无图片.jpg\"; } else {
this.Image1.ImageUrl = paramPetInfo.PetImage; }
this.Image1.Visible = true;
}
public PetInfoManager GetPageValue(PetInfoManager paramPetInfo) {
paramPetInfo.PetID = this.txtPetID.Text; ……
Word文档
`
if (this.Image1.ImageUrl == \"\") {
this.Image1.ImageUrl = \"../Image/暂无图片.jpg\"; }
paramPetInfo.PetImage = this.Image1.ImageUrl;
}
if(this.ID.Length > 0)
{ }
try
{
myPetInfo.Save(null); this.Clear();
this.Alert(\"保存成功\",
\"Saved\");base.JsWrite(\"window.location.href='UIPetInfoManager.aspx?IsPageBack=1';window.close();\", \"Close\");
}
catch (Exception myException) { }
ExceptionManager.Throw(this.OperatorID, \"维护\", myException); this.Alert(\"保存失败,此次操作无效!\", \"Error\"); myPetInfo.Get(null, this.ID); return paramPetInfo;
(4)订单管理
主要有查询订单,对订单发货,删除不需要的订单及导出订单信息等几个功能,如图5-9所示。其中订单的发货可以是单一订单发货也可以多单发货,当选中一条记录时可以查看该订单详细信息。如果尚未发货可以直接对其进行发货。也可以返回到主页进行多单发货。
图5-9 订单查询页面
需要单一订单发货时先选中需要发货的订单然后点击去发货,进入到订单详细信息界
Word文档
`
面。如果该订单已发货此时的界面显示如图5-10所示,若该订单未发货此时的界面如图5-11所示。
图5-10 已发货订单页面
已发货的订单只能查看订单信息,不能进行任何操作,以免对同一订单重复发货。
图5-11 未发货订单页面
未发货的订单要想发货可以将是否已发货选项改为‘1’,然后点击确认信息并发货,页面会自动跳转到订单信息页面。 多单发货的主要代码如下:
UI层:
protected void btnShip_Click(object sender, EventArgs e) {
int returnValue = 0;
OrderInfoManager myOrderInfo = new OrderInfoManager(); ArrayList myArrayList = this.GetID(); if (myArrayList.Count == 0) {
Word文档
`
Response.Write(\"\"); return; }
foreach (string paramStr in myArrayList) {
returnValue += myOrderInfo.UpdateOrderInfoTwo(paramStr); }
if (returnValue == myArrayList.Count) {
UpdateGoodsStock();
Response.Write(\"\"); }
this.BindGrid(1, 10); }
BU层:
public int UpdateOrderInfoTwo(string paramID) {
string sqlQuery = \" update OrderInfo set IsSend='1' where OrderID='\" + paramID + \"' \"; int returnValue = this.ExecuteNonQuery(sqlQuery); return returnValue; }
发货之后联动该商品的库存量,该功能的主要代码如下: UI层:
GoodsSellManager myGoodsSell = new GoodsSellManager(); private int UpdateGoodsStock() {
int returnValue = 0;
OrderInfoManager myOrderInfo = new OrderInfoManager(); ArrayList myArrayList = this.GetID(); foreach (string paramStr in myArrayList) {
string paramGoodsName = myOrderInfo.GetGoodsIDTwo(paramStr).Tables[0].Rows[0][0].ToString(); int paramCount = Convert .ToInt32 ( myOrderInfo.GetCount(paramStr).Tables[0].Rows[0][0].ToString()); returnValue += myGoodsSell.UpdateGoodsStock(paramGoodsName, paramCount); }
return returnValue; }
BU层:
public int UpdateGoodsStock( string paramGoodsName,int paramNum) {
int returnValue = 0;
string strQuery = \" UPDATE [PetGoods] SET [Stock]= stock - \" + paramNum + \" WHERE [GoodsName] ='\" +
paramGoodsName + \"'\";
Word文档
`
returnValue = this.ExecuteNonQuery(strQuery); return returnValue; }
六、系统测试
系统在完成后,经过测试,有许多需要改进的地方,我们也都一一解决。
1.物信息页面,在添加数据并保存后不能够自动返回到宠物信息界面,后来经过改正已实现该功能并且能同时刷新宠物信息。
2.订单发货时,只能对单一订单发货,后来又多加一个多单发货的功能,并且实现了发货之后不能再发货的功能。
3.公司新闻信息页面,原来信息显示数据库里的全部数据,导致界面显示的太丑,后用截取字符串已实现界面的美化效果。
七、小结
至此,贝贝宠物网系统设计与实现已经顺利完成。我主要负责后台的设计与实现及前台的购物流程。在几天的试运行的过程中,发现连接数据库时一度出现过错误,经过调试改正后错误点全部清除,此系统可以按着设计思想和需求功能正常运行。
由于当今的宠物店各具特色,经营围也各有千秋,要求也不尽相同,所以本系统仅考虑到贝贝宠物公司所需要的业务活动及管理的基本和主要的几项功能,一个完好的宠物网系统还需要更多更复杂的功能要求。由于开发周期短和开发人员水平有限等局限性,不能将本套系统尽善尽美。希望在以后能够对宠物网做更深一步的调研,在原由系统的基础上不断添加新功能。最终能够开发出一套完善的贝贝宠物网系统。
本系统在开发过程中,在固定的业务管理要求的模式下还添加了一些人性化的,个人的构思和创意。
本套贝贝宠物网系统符合基本需求功能,易于操作,应该可以满足宠物公司的基本需求,存在要改进的地方在以后会进一步完善。希望本系统能够给用户带来方便。
Word文档
因篇幅问题不能全部显示,请点此查看更多更全内容