• 1.63 MB
  • 2022-04-22 13:42:25 发布

互联网宠物网站毕业论文.doc

  • 28页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'互联网宠物网站毕业论文目录一、引言2二、需求分析3(二)可行性分析3(三)功能需求分析4(四)开发环境需求5三、系统设计5(一)系统功能模块图5(二)系统活动图7(三)系统用例图8四、数据库设计9(一)E-R图模型9(二)数据库模型图10五、系统详细设计与实现11(一)数据库表设计11(二)前台主页面的搭建14(三)后台的主框架的搭建15(四)后台的主要基本功能与实现15六、系统测试27七、小结28八、参考文献28 摘要:在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们学习、工作、生活等各个方面发挥着重要的作用。因此网站建设在Internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。本文详细介绍了宠物网站的功能和结构,并论证了网站的设计方案,简要介绍了使用的开发工具MicrosoftVisualStudio2008以及涉及到的等相关技术,并以在线文章发布子系统开发的顺序详细介绍了系统分析,系统设计,系统实施的开发过程,然后,展示了子系统所实现的功能及部分界面在介绍某些关键技术的同时,还给出了关键源程序代码。最后对本系统的不足和本人在开发中的认识和感想进行了总结。关键词:互联网;数据库;宠物网站一、引言贝贝宠物公司自创始以来不断的发展壮大,业务也越来越繁忙,雇佣数量较多的工作人员同时也难以避免客户在购买宠物时造成宠物翻阅损耗等一系列费用,当今网络所显现的超常信息量、无时空局限、传递快捷、操作灵活等优点吸引着越来越多网民,同时随着经济的发展,人民生活节奏也越来越快,所以网上购物吸引了越来越多的人。宠物网正是为了满足这种需求而研发的中小型电子商务系统。贝贝宠物网系统是基于B/S模式的小型电子商务系统,能够满足中小型宠物商店的网上销售宠物用品的需要。搭建宠物网极为简单只需要一台PC机,一根网线,即可进行网上交易。宠物网基本上满足了中小型宠物商店的网上销售需求,其主要功能包括宠物展示、宠物用品展示、购物车、收银台、会员管理、订单查询、新闻浏览、宠物护养常识浏览、宠物管理、用户管理、订单管理。宠物展示主要实现宠物的重点推荐、明星宠物、宠物分类查询、宠物用品销售排行榜等功能;购物车功能给每个用户建立了一个相对应的唯一存放选中宠物籍存放的空间;收银台提供了客户付账的功能,当顾客决定购买购物车里的宠物籍时,向收银台提交订单;会员管理为每一位注册用户提供了注册、登陆;后台的宠物管理是为管理员提供修改、添加删除宠物信息的功能;用户管理实现的功能有查看用户信息、消费总额;订单管理主要负责查看客户的发货执行情况;新闻管理方便管理员向首页新闻页面里添加27 公司新闻;护养常识是为了方便会员及大众更好的饲养宠物、相应的减少宠物不必要的伤害等。贝贝宠物网的设计充分考虑了用户的视觉感受,努力做到界面简单明了,功能相对完善。后台开发充分考虑了使用软件的用户可能对计算机软件并不是很了解,所以在设计的过程中添加了许多必要的提示和说明。总之贝贝宠物网将以.Net技术为基础,实现宠物信息的发布、购物、用户管理、宠物后台管理等一系列的功能,力争成为广大客户带来更多的便利,为贝贝宠物公司带来更高的销售额。二、需求分析(一)项目背景宠物正在成为不少家庭里的新成员。随着养宠物的家庭不断增多,宠物经济也越来越受人关注。目前从养宠物的数量和消费能力上看,北京、上海、广州、重庆和武汉已经成为我国五大“宠物城市”,在这些城市。而天津、南京、杭州、深圳、成都等城市,宠物普及程度也相当高。不少业内人士表示,随着日前颁布的《宠物条例》中免去每年宠物年检费用的政策出台后,可能会有更多人加入养宠物的行列,中国宠物市场的潜力仍待挖掘。如此大的市场自然吸引了众商家的眼球,围绕“宠物赚钱”(指宠物交易本身)和“赚宠物的钱”这两个主题,市场可提供的项目越来越多,为宠物衣食住行、生老病死支出的费用也在逐年增加,个别已经面临服务升级的项目收费更是高得惊人。由于饲养宠物是一个循环消费的过程,消费者需要不停地支出,因此宠物产业成为投资者非常看中的热点行业。有关专家表示,我国目前至少有宠物1亿只(条),围绕宠物发生的消费至少在150亿元以上。同时,“宠物热”还带动了宠物经济,围绕宠物服务和宠物用品大做文章的人成倍增加,从宠物食品、宠物医疗,到宠物美容,甚至还出现了宠物婚介、殡葬、寄养、宠物SPA、宠物旅游团等新兴服务。然而,由于行业缺乏监管和规范,“暴利”、欺诈现象严重,给行业发展蒙据了解,在宠物消费中,食品占据最大份额,其次是医疗和宠物用品,许多投资者甚至认定生产和经营宠物用品只赚不赔,纷纷抢食。宠物行业除了收费充满暴利外,由于越来越多的投资者加入到快速增长的宠物市场,又缺乏有效的监管和规范,使整个市场陷入无序混乱的状态。(二)可行性分析1.技术的可行性贝贝宠物网系统采用了当前的主流计算结构—B/S模式进行开发,前台开发工具选用27 MicrosoftVisualStudio2008。它是一种可视化的、面向对象的Windows开发语言,具有易用、通用和开发效率高的特点。后台的数据库开发工具选用了MicrosoftSQLServer2005,它能够处理大量数据,同时保持数据完整性并提供许多高级管理和数据分配功能,它又在数据库平台的安全模块方面做了重要的增强,在加强数据安全性方面提供了更多精确、灵活的控制方法,并定义了帮助建立支持安全计算的必要步骤,同时帮助部署和维护一个安全环境。这两种开发工具功能强大,有较好的接口,作为本系统开发工具是可行的。2.经济可行性随着计算机技术的飞速发展,计算机在企业管理中应用的普及,实现了企业业务管理的高效化、系统化、规范化、自动化。同样随着宠物业的崛起,贝贝宠物公司已经成长为一个跨地区的大公司,并且公司的业务已遍布全国。而传统的经营模式已无法适合当今的庞大的数据处理和精确的运算需求。所以一套精美完善的宠物网系统是提高工作效率节省人力物力财力的有效解决方案。拥有自己的一套特色的宠物网站系统是非常必要的。它可持续使用并能随着时代和工作的需求不断更新,一期投入终身受用,按长期的使用计算,开发系统的造价平均到每年与传统式的管理方式的年耗资本相对比,性价比是可行的。开发这套系统的经济可行性是很高的。(三)功能需求分析根据调查,宠物网站管理主要包括网站的浏览者、会员、网站管理人员三个方面。宠物浏览者的需求是查询该网站的宠物和宠物商品信息,想要购买所需的东西,则需要注册登录,成为会员;会员的需求是查询该网站的宠物和宠物商品以及购买所需物品,当然如果密码丢失还可以找回密码;网站管理人员可以对员工、会员、宠物及宠物用品进行管理。因此我们的网站分为前台后台两个方面进行设计的,前台主要是产品的展示,供浏览者和会员查看和购买商品,而后台主要是管理员登陆的,管理员要从后台维护网站的所有信息,包括会员管理,宠物管理,宠物用品管理,员工管理,订单管理等等。前台需要实现的主要功能有:1.宠物及相关用品信息的浏览,明星宠物,热销用品的展示及详细信息浏览。2.护养常识,公司新闻及公司介绍的浏览。3.宠物用品的购买包括对购物车信息的修改,订单信息的填写及提交。4.会员注册,登录,若丢失密码时找回密码。后台系统管理员对数据的处理及维护:1.系统设置27 对数据库备份与还原,操作日志的查看,管理员信息的查询,详细信息查看,新增管理员,删除不用的管理员信息,对管理员密码的修改。2.基本资料管理员工信息管理,供应商信息管理,可以对该项目中进行查询(包括模糊查询),添加,修改,删除及导出数据等操作3.销售管理今日订单提醒,能够及时获取当日的订单信息,及时的对订单进行发货(包括单单发货和多单发货)。宠物销售管理,记录宠物的销售情况,对销售记录进行添加,修改,删除等操作。宠物用品销售管理,记录用品的销售情况,对其销售记录进行添加,修改,删除等操作。当对订单发货或者是添加销售记录是均会对库存进行判断。只有在库存量大于订单订购量或销售量时才能操作成功。4.库存信息管理宠物基本信息管理,添加新上架的宠物信息,删除不需要的宠物信息,发现错误信息能进行修改,也可以导出宠物信息。宠物用品信息管理,可以对新上架的用品进行及时添加,修改数据,对已过时,或长久不用的用品信息进行删除,也可以导出宠物用品信息。5.咨询中心模块、包括公司新闻信息维护和护养常识信息维护。包括公司新闻信息维护和护养常识信息维护。员工可以通过此模块更清晰的了解公司的最新动态,用户则可以看到很多最新上市的商品,以及一些关于宠物的趣闻和养护知识。(四)开发环境软件需求操作系统:操作系统:WindowsXP/Windows2003。数据库:SQLServer2005。开发工具:MicrosoftVisualStudio2008。辅助开发工具:PhotoshopCS2、Flash8。三、系统设计(一)系统功能模块图根据上述系统功能的需求分析,按照结构化程序设计的需求,得到如下的系统模块图。1.前台主要分为会员管理,商品展示,购买流程,新闻浏览四大功能模块。如图3-1所示。27 其中会员管理模块包括了会员登录、会员注册、会员找回密码、注销用户等功能。商品展示主要是对宠物及宠物用品进行展示,包括热销宠物,促销商品等的分类展示及详细介绍。购买流程主要针对会员购买商品时所进行的一系列的操作。包括宠物用品的详细介绍及选购,购物车管理,填写订单并提交。新闻浏览模块主要介绍公司新闻,公司简介及宠物的护养常识。2.后台主要分为基本信息管理,销售管理,库存管理个系统管理四大功能模块,如图3-1所示。其中基本信息管理模块主要包括会员的基本信息,供应商信息管理,公司新闻的发布,护养常识的管理等模块。销售管理模块主要包括对订单的管理,宠物销售记录的管理和宠物用品销售记录的管理。库存管理模块主要包括宠物信息的管理和宠物用品信息的管理。系统管理模块主要有对数据库的备份与还原,操作日志的记录。图3-1功能模块图(二)系统活动图1.管理员活动图,如图3-2所示。27 图3-2管理员活动图2.会员活动图,如图3-3所示。图3-3会员活动图3.一般用户活动图,如图3-4所示。27 图3-4会员活动图(三)系统用例图1.管理员用例图,如图3-5所示管理员用例图指出管理员进入系统后,可进行的操作的信息。图3-5管理员用例图2.会员用例图,如图3-6所示27 图3-6会员用例图四、数据库设计数据库的设计经过我们的分析,将系统中涉及的功能表现出来,其中表的建立尤为重要。数据库表的建立不仅是字段的建立,表与表之间的关系也不可或缺。主键、外键的关系需要谨慎建立。创建外键关系即是将各表与表之间联系起来。表与表之间一旦脱离了外键之间的关系而独立,那么系统之间的功能也将难以完成。(一)E-R图模型E-R图简洁的反映出整个流程的概况和系统中所有实体之间相对应的关系,综合了管理员、员工、会员、一般用户在整个系统中的联系和各自的安排把系统的内部联系明了化。27 图4-1E-R模型图(二)数据库模型图图中显示了数据库中有哪些表,各张表在数据库中的联系,即他们之间的主外键关系。图4-2数据库模型图27 五、系统详细设计与实现(一)数据库表设计经过分析,系统中建立了数据库PetData,如图5-1所示。图5-1PetData数据库下面是几张主要的表:1.会员表(CustomerInfo):表名(中文)会员表表名(英文)CustomerInfo序号说明列名数据类型长度小数位标识主键允许空默认值1会员编号CusIDint40是是否2用户名CusNamenvarchar500否3密码CusPwdnvarchar500否4性别CusSexnvarchar500是5邮箱Emailnvarchar500是6电话Telnvarchar500否7QQQQnvarchar500是8地址CusAddressnvarchar500否9登陆时间LoginDatenvarchar500是10邮编PostCodenvarchar500是11会员类型CusTypeIDnvarchar100是12积分Integralnvarchar100是13备注Remarksnvarchar00是27 2.宠物用品信息表(PetGoods):表名(中文)宠物用品信息表表名(英文)PetGoods序号说明列名数据类型长度小数位标识主键允许空默认值1IDIDint40是是否2编号GoodsIDnvarchar500是3分类GoodsClassnvarchar500是4名称GoodsNamenvarchar500是5参考价格Pricenvarchar500是6会员价Goods_memPricenvarchar500是7单位Unitnvarchar100是8供应商编号PetSupplierIDnvarchar500是9库存量Stocknvarchar500是10特征Goodsfeaturesnvarchar500是11进货时间StockTimedatetime83是12商品图片GoodsImagenvarchar500是13备注Remarknvarchar10000是3.宠物信息表(PetInfo):表名(中文)宠物信息表表名(英文)PetInfo序号说明列名数据类型长度小数位标识主键允许空默认值1IDIDint40是是否2宠物编号PetIDnvarchar500是3全名PetNamenvarchar500是4别名OtherNamenvarchar500是5身高Heightnvarchar500是6类型Typenvarchar500是7寿命Lifenvarchar500是8品种Varietynvarchar00是9功能PetFunctionnvarchar500是10原产地Source_areanvarchar00是11详细介绍Deta_introducenvarchar00是12供应商编号PetSupplierIDnvarchar500是13库存量Stocknvarchar500是14照片PetImagenvarchar500是15参考价Pricenvarchar500是16备注Remarknvarchar500是27 4.订单表(OrderInfo):表名(中文)订单表表名(英文)OrderInfo序号说明列名数据类型长度小数位标识主键允许空默认值1订单编号OrderIDint40是是否2商品编号GoodsNamenvarchar500是3会员名称CusNamenvarchar500是4订购金额Pricenvarchar500是5订购数量TotleCountnvarchar500是6订购时间OrderTimenvarchar500是7手机号Mobilenvarchar500是8固定电话Telnvarchar500是9收货人Consigneenvarchar500是10收货地址ConsiAdressnvarchar2000是11送货时间PostCodenvarchar500是12送货方式DeliverTypenvarchar500是13支付方式PayTypenvarchar500是14是否已发货IsSendint40是5.商品销售表(GoodsSell):表名(中文)宠物用品销售表表名(英文)GoodsSell序号说明列名数据类型长度小数位标识主键允许空默认值1IDIDint40是是否2销售编号SellIDnvarchar500是3客户编号CustomerIDnvarchar500是4商品编号GoodsIDnvarchar500是5数量Amountnvarchar500是6消费金额TotalDuesnvarchar500是7记录人编号RecordManIDnvarchar500是8记录时间RecordTimenvarchar500是9修改人编号ModifyManIDnvarchar500是10修改时间ModifyTmienvarchar500是11备注Remarksnvarchar00是6.宠物销售记录表(PetSell):表名(中文)宠物销售表表名(英文)PetSell序号说明列名数据类型长度小数位标识主键允许空默认值1IDIDnvarchar500是否2销售编号SellIDnvarchar500是3客户编号CustomeIDnvarchar500是27 4宠物编号PetIDnvarchar500是5销售数量Amountnvarchar500是6销售金额TotalDuesnvarchar500是7记录人员编号RecordManIDnvarchar500是8记录时间RecordTimenvarchar500是9修改人编号ModifyStaffIDnvarchar500是10修改时间ModifyDatetimenvarchar500是11备注Remarksnvarchar00是(二)前台主页面的搭建前台界面均以黄色为主色调,色彩鲜明,主页面主要展示部分热销宠物和正在促销的宠物用品。同时还具有搜索和会员登录的功能。在个性化设计方面又加了一个小日历小巧玲珑。页面的搭建采用div/css模式并应用了JavaScript特效。同时还灵活应用了母版和自定义控件。使页面搭建更方便,也使得页面统一美观(如图5-2所示)。图5-2前台主页面27 (三)后台的主框架的搭建色彩采用蓝色为主色调,并以淡蓝色为主,整体给人以活泼,轻松,舒适的感觉(如图5-3所示)。页面的搭建采用div/css和frameset模式,并且应用了JavaScript特效。左侧导航,各个功能模块一目了然。头部首页可以链接到前台的贝贝宠物网站首页,并有前进,后退及刷新等功能。还特意加了一个日期特效,能够清楚知道具体日期。图5-3后台主框架页面(四)后台的主要基本功能与实现1.管理员登录页面色彩与主页面一样同样以谈蓝色为主色调,如图5-4所示。图5-4登录界面27 该登录界面还具有记住密码的功能,在UI层编写一个BasePage类用来存放公用的代码,从而达到代码的复用性。其主要代码如下所示:publicclassBasePage:System.Web.UI.Page{PublicvoidDoLogin(stringparamUserName,stringparamPasswor,boolparamPersistCookie){StaffManagermyBUStaff=newStaffManager();try{myBUStaff.DoLogin(paramUserName,paramPasswor);}catch{throw;}if(myBUStaff.ID.Length>0){stringUserKey=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();27 FormsAuthentication.SignOut();Session.Abandon();}}}protectedvoidbtnLogin_Click(objectsender,EventArgse){stringuserName=this.txtUserName.Text.Trim();stringpassWord=this.txtPassWord.Text.Trim();this.LoginSystem(userName,passWord);}protectedvoidLoginSystem(stringparamUserName,stringparamPassWord){try{base.DoLogin(paramUserName,paramPassWord,false);if(Request["Action"]!=null&&Request["Key"]!=null){stringWord=string.Empty;stringUserInfo=Session["OperatorID"].ToString()+"+"+paramPassWord;stringkey=Request["Key"].ToString();LindonSoft.SubstrateLayer.DALayer.DataCryptomyDataCryto=newLindonSoft.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(ExceptionmyException){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;27 this.txtUserName.Focus();this.lblError.Text=myException.Message;this.lblError.Visible=true;}}}(2)数据库备份与还原备份数据库,可以选择数据库的名称及备份文件的保存路径,如图5-5所示。图5-5备份数据库选择好数据库及文件保存路径后点击数据备份按钮即可,只需要UI就可以实现数据的连接、加载。主要代码如下:protectedvoidbtnConfirm_Click(objectsender,EventArgse){stringSqlStr1="Server=.;database="+this.DropDownList1.SelectedValue+";Uid=sa;Pwd=123";stringSqlStr2="backupdatabase"+this.DropDownList1.SelectedValue+"todisk=""+this.TextBox1.Text.Trim()+".bak"";SqlConnectioncon=newSqlConnection(SqlStr1);con.Open();try{if(File.Exists(this.TextBox1.Text.Trim())){Response.Write("alert("此文件已存在,请从新输入!");");return;}SqlCommandcom=newSqlCommand(SqlStr2,con);com.ExecuteNonQuery();Response.Write("alert("备份数据成功!");");}catch(Exceptionerror)27 {Response.Write(error.Message);Response.Write("alert("备份数据失败!")");}finally{con.Close();}}还原数据库,可以选择需要还原的数据库以及还原文件的存放路径,如图5-6所示。图5-6还原数据库主要代码如下:只需要UI就可以实现数据的连接、加载protectedvoidbtnConfirm_Click(objectsender,EventArgse){stringpath=this.FileUpload1.PostedFile.FileName;//获得备份路径及数据库名称stringdbname=this.DropDownList1.SelectedValue;stringSqlStr1="Server=.;database=""+this.DropDownList1.SelectedValue+"";Uid=sa;Pwd=123";stringSqlStr2="usemasterrestoredatabase"+dbname+"fromdisk=""+path+""";SqlConnectioncon=newSqlConnection(SqlStr1);con.Open();try{SqlCommandcom=newSqlCommand(SqlStr2,con);com.ExecuteNonQuery();Response.Write("alert("还原数据成功!");");}catch(Exceptionerror){Response.Write(error.Message);Response.Write("alert("还原数据失败!")");}finally27 {con.Close();}}(3)宠物信息的维护包括对宠物信息的查询,模糊查询,添加,修改,删除,批量删除,导出数据等操作。还有针对页面显示而做的一些功能,包括页面显示的行数,跳转页面等。具体实例图,如图5-7所示。5-7宠物信息查询界面查询时如在宠物编号和名字中均为空白,此时查询的是全部的数据,如果输入内容就是按条件查询。具体的实现代码如下:在UI层获取两个TextBox里面的值(若无值即为空),传到BU层。将查询到的内容加载到gridview里面。protectedvoidbtnSearth_Click(objectsender,EventArgse){27 this.myQueryData=newPetInfoQueryData(this.txtPetID.Text.Trim(),this.txtPetName.Text.Trim());this.BindGrid(1,10);}publicvoidBindGrid(intparamPageIndex,intparamPageSize){PetInfoManagermyPetInfo=newPetInfoManager();DataSetmyDs=myPetInfo.Search(null,this.myQueryData);this.Master.BindData(this.grdvMessage,myDs.Tables[0].DefaultView);}在BU层打开数据库连接并执行sql语句,将执行结果放入到BaseDBCon中,并返回。主要代码如下:publicDataSetSearch(BaseDBConmyBaseDBCon,PetInfoQueryQueryData){stringstrQuery=@"SELECT"+PetInfo.ID_FULL+","……+PetInfo.Deta_introduce_FULL+"FROM"+PetInfo.TABLENAME+"WHERE1=1";boolDbCloce=myBaseDBCon==null;HashtablemyParam=newHashtable();if(QueryData.PetID.Length>0){strQuery+="AND"+PetInfo.PetID_FULL+"LIKE@PetID";myParam.Add("@PetID","%"+QueryData.PetID.Replace("","%")+"%");}……DataSetmyDs=newDataSet();try{myBaseDBCon=BaseDBCon.Instance(myBaseDBCon);myBaseDBCon.Fill(strQuery,myDs,PetInfo.TABLENAME,myParam);myBaseDBCon.CommitTransaction(DbCloce);}catch(ExceptionmyEx){myBaseDBCon.RollBackTransaction(DbCloce);thrownewException(myEx.Message+"rnSQL:"+strQuery);}finally27 {myBaseDBCon.Close(DbCloce);}returnmyDs;}当数据过多存在无用数据时可对数据进行删除,先在gridview的第一列的CheckBox中选中要删除的相,然后点击删除按钮。主要代码如下:protectedvoidbtnDel_Click(objectsender,EventArgse){ArrayListIds=base.GetSelectedIds(this.grdvMessage);PetInfoManagermyPetInfo=newPetInfoManager();myPetInfo.BatchDel(null,Ids);this.BindGrid(1,10);}当需要添加宠物信息时,点击右下角的添加按钮,会转到宠物信息操作页面,如图5-8所示。录入宠物信息包括宠物编号,全称,别名,类型,原产地,库存量,照片,详细介绍等。宠物编号均由该宠物英文名字的前三个字母加数字组成。图5-8宠物信息操作页面在文本框中输入信息后,点击添加数据首先添加到GridView的控件中,你可以进行数据的核对,核对无误后点击保存即可保存到数据库中,并且返回到宠物信息页面,即可看到刚刚添加的数据。主要代码如下:27 UI层:PetInfoManagermyPetInfo=newPetInfoManager();myPetInfo=this.GetPageValue(myPetInfo);intreturnValue=myPetInfo.InsertPetInfo(myPetInfo);if(returnValue>0){this.Clear();this.Alert("添加成功","Saved");base.JsWrite("window.location.href="UIPetInfoManager.aspx?IsPageBack=1";window.close();","Close");}BU层:publicintInsertPetInfo(PetInfoDatamyPetInfoData){intreturnValue=0;stringsqlQuery=@"INSERTINTO[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);returnreturnValue;}}如果宠物信息有错误,可以点击gridview中的修改图片,进入到宠物信息操作页面(如图所示),然后对数据进行修改确定信息修改正确后点击保存按钮,修改的数据会直接保存到数据库,然后直接返回到宠物信息页面,数据会直接显示出来。主要代码如下:publicvoidSetPageValue(PetInfoManagerparamPetInfo){this.txtPetID.Text=paramPetInfo.PetID.ToString();……this.Image1.ImageUrl=paramPetInfo.PetImage;if(this.Image1.ImageUrl==""){this.Image1.ImageUrl="../Image/暂无图片.jpg";27 }else{this.Image1.ImageUrl=paramPetInfo.PetImage;}}publicPetInfoManagerGetPageValue(PetInfoManagerparamPetInfo){paramPetInfo.PetID=this.txtPetID.Text;……this.Image1.Visible=true;if(this.Image1.ImageUrl==""){this.Image1.ImageUrl="../Image/暂无图片.jpg";}paramPetInfo.PetImage=this.Image1.ImageUrl;returnparamPetInfo;}if(this.ID.Length>0){myPetInfo.Get(null,this.ID);}try{myPetInfo.Save(null);this.Clear();this.Alert("保存成功","Saved");base.JsWrite("window.location.href="UIPetInfoManager.aspx?IsPageBack=1";window.close();","Close");}catch(ExceptionmyException){ExceptionManager.Throw(this.OperatorID,"维护",myException);this.Alert("保存失败,此次操作无效!","Error");}(4)订单管理主要有查询订单,对订单发货,删除不需要的订单及导出订单信息等几个功能,如图5-9所示。其中订单的发货可以是单一订单发货也可以多单发货,当选中一条记录时可以查看该订单详细信息。如果尚未发货可以直接对其进行发货。也可以返回到主页进行多单发货。27 图5-9订单查询页面需要单一订单发货时先选中需要发货的订单然后点击去发货,进入到订单详细信息界面。如果该订单已发货此时的界面显示如图5-10所示,若该订单未发货此时的界面如图5-11所示。图5-10已发货订单页面已发货的订单只能查看订单信息,不能进行任何操作,以免对同一订单重复发货。27 图5-11未发货订单页面未发货的订单要想发货可以将是否已发货选项改为‘1’,然后点击确认信息并发货,页面会自动跳转到订单信息页面。多单发货的主要代码如下:UI层:protectedvoidbtnShip_Click(objectsender,EventArgse){intreturnValue=0;OrderInfoManagermyOrderInfo=newOrderInfoManager();ArrayListmyArrayList=this.GetID();if(myArrayList.Count==0){Response.Write("");return;}foreach(stringparamStrinmyArrayList){returnValue+=myOrderInfo.UpdateOrderInfoTwo(paramStr);}if(returnValue==myArrayList.Count){UpdateGoodsStock();Response.Write("");}this.BindGrid(1,10);}BU层:publicintUpdateOrderInfoTwo(stringparamID){27 stringsqlQuery="updateOrderInfosetIsSend="1"whereOrderID=""+paramID+""";intreturnValue=this.ExecuteNonQuery(sqlQuery);returnreturnValue;}发货之后联动该商品的库存量,该功能的主要代码如下:UI层:GoodsSellManagermyGoodsSell=newGoodsSellManager();privateintUpdateGoodsStock(){intreturnValue=0;OrderInfoManagermyOrderInfo=newOrderInfoManager();ArrayListmyArrayList=this.GetID();foreach(stringparamStrinmyArrayList){stringparamGoodsName=myOrderInfo.GetGoodsIDTwo(paramStr).Tables[0].Rows[0][0].ToString();intparamCount=Convert.ToInt32(myOrderInfo.GetCount(paramStr).Tables[0].Rows[0][0].ToString());returnValue+=myGoodsSell.UpdateGoodsStock(paramGoodsName,paramCount);}returnreturnValue;}BU层:publicintUpdateGoodsStock(stringparamGoodsName,intparamNum){intreturnValue=0;stringstrQuery="UPDATE[PetGoods]SET[Stock]=stock-"+paramNum+"WHERE[GoodsName]=""+paramGoodsName+""";returnValue=this.ExecuteNonQuery(strQuery);returnreturnValue;}六、系统测试系统在完成后,经过测试,有许多需要改进的地方,我们也都一一解决。1.物信息页面,在添加数据并保存后不能够自动返回到宠物信息界面,后来经过改正已实现该功能并且能同时刷新宠物信息。2.订单发货时,只能对单一订单发货,后来又多加一个多单发货的功能,并且实现了发货之后不能再发货的功能。3.27 公司新闻信息页面,原来信息显示数据库里的全部数据,导致界面显示的太丑,后用截取字符串已实现界面的美化效果。七、小结至此,贝贝宠物网系统设计与实现已经顺利完成。我主要负责后台的设计与实现及前台的购物流程。在几天的试运行的过程中,发现连接数据库时一度出现过错误,经过调试改正后错误点全部清除,此系统可以按着设计思想和需求功能正常运行。由于当今的宠物店各具特色,经营范围也各有千秋,要求也不尽相同,所以本系统仅考虑到贝贝宠物公司所需要的业务活动及管理的基本和主要的几项功能,一个完好的宠物网系统还需要更多更复杂的功能要求。由于开发周期短和开发人员水平有限等局限性,不能将本套系统尽善尽美。希望在以后能够对宠物网做更深一步的调研,在原由系统的基础上不断添加新功能。最终能够开发出一套完善的贝贝宠物网系统。本系统在开发过程中,在固定的业务管理要求的模式下还添加了一些人性化的,个人的构思和创意。本套贝贝宠物网系统符合基本需求功能,易于操作,应该可以满足宠物公司的基本需求,存在要改进的地方在以后会进一步完善。希望本系统能够给用户带来方便。八、参考文献[1]刘甫迎,王蓉:C#程序设计教程[M],北京,电子工业出版社,2008.[2]徐人凤:SQLServer2000数据库及应用[M],北京,高等教育出版社,2002.[3]贾洪峰:ADO.NET2.0技术内幕[M],北京,清华大学出版社出版社,2008.[4]周绪:SQLServer2000中文版入门提高[M],北京,清华大学出版社,2003.[5]萨师煊,王珊:数据库系统概论[M],北京,高等教育出版社,1983.[6]郑人杰:软件工程[M],北京,清华大学出版社,1998.[7]吉林省宠物网(http://www.ccpet.net)[8]宠友网(http://www.petyoo.com/petlist.php)27'