荆州农产品交易平台
_Toc389233410
_Toc389233463
_Toc389233516
_Toc389233569
_Toc389233622
_Toc389233675
_Toc389233728
_Toc389233781
_Toc389233834
_Toc389233887
_Toc389233940
_Toc389233993
_Toc389234210
1 引言
_Toc202196196
_Toc137299378
_Toc137207478
_Toc136975300
_Toc136974796
_Toc136969988
_Toc23922
_Toc337733420
_Toc339978072
_Toc339978135
_Toc350686522
_Toc363028862
_Toc363828862
_Toc377126923
_Toc387325364
_Toc387925030
_Toc389233358
_Toc389233411
_Toc389233464
_Toc389233517
_Toc389233570
_Toc389233623
_Toc389233676
_Toc389233729
_Toc389233782
_Toc389233835
_Toc389233888
_Toc389233941
_Toc389233994
_Toc389234211
选题背景
_Toc136969989
_Toc136974797
_Toc136975301
_Toc137207479
_Toc137299379
_Toc202196197
_Toc22098
_Toc337733421
_Toc339978073
_Toc339978136
_Toc350686523
_Toc363028863
_Toc363828863
_Toc377126924
我国一个农业大国,农业是我国基础产业,农产品资源丰富,品种繁多,分布广泛,但也正因为这些特点,使得很多农户和经营者在农产品生产及销售上存在着信息不对称等诸多问题。近年来,网络购物已经成为潮流,越来越多的人开始注重将电子商务应用到农产品的交易中。当前,国内农产品电子商务的应用大部分是以农产品信息发布平台的形式存在,还不能满足真正实现农产品的虚拟交易。本平台基于B/S(服务器/浏览器)模式架构,以ASP作为主要开发环境,vs2008 搭建主要框架并以SQL建立后台数据库,分前台和后台功能模块,前台模块包括用户登录模块、农产品信息浏览、农产品信息发布、价格行情等模块;后台有会员基础信息管理、农产品信息管理、订单管理,通过这些功能模块的实现,为农户开拓了更为广泛的交易市场,加强了农户与供应商、经销商之间的交流,使得供需双方的目标更为明确,为整个农产品市场的发展带来一定的利益。
另外,各种类型的农产品交易网站多数是基于Web技术构建的,供需双方通过网站获取信息,为交易决策提供依据,这种模式提升了农产品的交易水平和质量,活跃了交易市场。但交易网站各自为阵,分散经营,交易网站不能自动采集来自于不同网站的农产品信息,信息采集仍需采用手工录入,交易效率不高,因此需要构建一种新型的动态农产品交易市场,实现自身与农产品供应商之间的自动化集成 [12]。利用Web Service的规范性、松散祸合、高度集成等特性,设计了一个基于Web Service的新型农产品交易系统,使供求双方有机地形成供求链,探索了农产品网上交易系统的设计新途径。
_Toc387325365
_Toc387925031
_Toc389233359
_Toc389233412
_Toc389233465
_Toc389233518
_Toc389233571
_Toc389233624
_Toc389233677
_Toc389233730
_Toc389233783
_Toc389233836
_Toc389233889
_Toc389233942
_Toc389233995
_Toc389234212
目前农产品网上交易在国内外发展现状
_Toc230433557
_Toc230710752
_Toc308982202
_Toc324186781
_Toc329875193
_Toc329875250
_Toc329875461
_Toc336702298
_Toc362251357
_Toc362252334
_Toc377126925
从基础设施看,全国性的农产品网络信息系统初步建成。通过网络搜索可以得到数百家农产品批发网站信息,浏览其中内容后发现,这些网站内容的建设虽然未达到电子商务在线交易要求 [1],但是其商务网站雏形已经显现。随着中国电子商务发展进程的加快和整体战略的提升,农业电子商务不仅迎来发展良机, 2011年1月3日,致力于打造我国农业信息化综合服务平台的“中国数字农村网”正式上线;2011年1月4日,北京新发地农产品电子交易中心正式启动,成为国内首个“农超对接”第三方服务平台。由此可见,现阶段建立农产品交易平台的环境和氛围都已成熟。并且,农业电子商务的发展计划已列入“十二五”发展计划当中。国外经济发达国家的农产品批发市场的交易模式与国内农产品批发市场具有较大的不同,首先,美国采用的是农产品直销模式,由农民或农民团体,将生产的农产品包装处理后,通过网络联系供应商及零售商,减少了不必要的中间环节,降低了运销价差,使生产者和消费者都得到利益。这种直销模式是与美国的经济发展水平相适应的。农产品生产规模增大,零售单位的规模也随之增大,尤其是零售商店形成连锁经营或超级市场连锁店网络的发展,在一定程度上解决了小生产与大流通的矛盾。与此同时,交通条件的进一步改善,通讯手段达到较高水平,保鲜技术的进步和分级的标准化,也为农产品直销的发展创造了条件。
_Toc136303476
_Toc389233360
_Toc389233413
_Toc389233466
_Toc389233519
_Toc389233572
_Toc389233625
_Toc389233678
_Toc389233731
_Toc389233784
_Toc389233837
_Toc389233890
_Toc389233943
_Toc389233996
_Toc389234213
农产品网上交易平台实现的意义和目的
建立农产品网上交易平台需要两个基本的要素,一是基础设施,二是市场。从基础设施看,全国性的农产品网络信息系统初步建成。经搜索“农产品批发市场”得到数百家农产品批发网站信息,浏览其中内容后发现,这些网站内容的建设虽然未达到电子商务在线交易要求,但是其商务网站雏形已经显现。国家发改委2004年已安排国债资金4 亿元人民币支持农产品批发市场信息系统和检验检测系统基础建设,2005年又安排国债资金4亿元支持119家农产品批发市场两大系统建设。
从市场情况看,近年来人们对电子商务的认识已经有了大幅度提升,无论是供应商还是消费者都已接受了这种消费模式,这点从网上调研可以证实。很多大集团和公司直接利用农产品批发网站发布长期采购信息 [1]。如康佳集团、深圳长城计算机股份有限公司等,因此实施农产品电子商务的群众基础已经形成。
随着我国信息基础设施的逐步完善和加强,电子商务 [1]交易逐步被普通百姓接受和认同。然而,对广大农村地区来说,由于种种原因,农村经济发展迟缓,农村道路不畅、农民文化程度偏低、农产品销售仍以当地批发市场和城镇集贸市场为主,农产品从生产者到消费者的过程较长,使本来并不丰厚的利润减少了许多。电子商务的实施和应用在一定程度上解决了农产品的销售问题,也是对当前农产品销售方式的一种补充,对增加农民收入、缩短农产品供应链、加快供求信息传播速度、全面提升我国农产品在国际市场的竞争力起着非常积极的作用。
_Toc389233361
_Toc389233414
_Toc389233467
_Toc389233520
_Toc389233573
_Toc389233626
_Toc389233679
_Toc389233732
_Toc389233785
_Toc389233838
_Toc389233891
_Toc389233944
_Toc389233997
_Toc389234214
传统农产品交易中存在的问题
1、竞争激烈,供应链长。 改革开放以来,国家对农民各项政策逐渐放宽,广大农民的经济意识不断加强。很多农村,特别是近郊地区的农民不再以种粮食为主,转为种植经济作物、水果和饲养家禽,为丰富城镇居民的菜篮子提供了保证。然而由于缺乏统一计划和管理,很多农产品的生产出现了一窝蜂现象,致使同类产品产量过盛,农产品供给逐渐由卖方市场转向买方市场,商户们竞相压价,竞争日趋激烈。传统农产品供应链较长,环节多。过多的中间环节并未使农产品增值,相反却使损耗增加。 [3]有资料显示,我国水果蔬菜等具有保鲜要求的农产品在运输过程中的损失率达25%-30%,相比发达国家损失率控制在5%以下,如此巨大的差距说明我国农产品在流通环节上的落后。
2、条块分割,管理混乱。条块利益严重阻碍了农产品批发市场向高层次发展,商户、批发市场管理者、政府各级行政主管部门各行其是,各自为政,加之与职能部门之间的利益冲突,使批发市场的管理比较混乱。个别市场主办单位只顾自身利益,不能严格按照市政府的统一部署和城市总体建设规划去兴建市场,影响了批发市场的现代化、高水平、高档次、高标准建设。整理提供同时,由于批发市场涉及电力、城建、治安、土地、工商、税务等众多职能部门,市场主办单位的行政管理和职能部门的职能管理,条块分割,各行其是,从而出现了一系列问题。
3、法律意识淡薄,缺乏职业道德。由于缺乏法律体系的保障,规章制度不健全,行政干预不足,使农产品批发市场经常出现以次充好、假冒名牌等违法销售行为 [2]。从业人员的素质不高,很大程度上导致了经营中不文明现象的发生。有些经营户不讲职业道德、强买强卖,阻碍了批发市场良好信誉的建立和良好风气的形成。
_Toc136303478
4、缺乏品牌意识,产品不具特色。 [10]品牌是企业产品识别的重要标志,品牌化经营同样能有效地提升批发市场形象。我国农产品批发市场的品牌意识不强,创名牌市场的积极性不高,很多同类的批发市场千篇一律,不具特色。同时,在目前我国市场上供应的全部农产品中,能成为国际知名品牌的商品不足1%,能成为国家级品牌的商品不到5%,能成为省级知名品牌的商品不到10%。
_Toc230433549
_Toc230710743
_Toc308982207
_Toc324186798
_Toc329875202
_Toc329875258
_Toc329875469
_Toc336702306
_Toc362251365
_Toc362252342
_Toc377126931
_Toc387325372
_Toc387925032
_Toc389233362
_Toc389233415
_Toc389233468
_Toc389233521
_Toc389233574
_Toc389233627
_Toc389233680
_Toc389233733
_Toc389233786
_Toc389233839
_Toc389233892
_Toc389233945
_Toc389233998
_Toc389234215
_Toc266273858
_Toc338494902
_Toc338494989
_Toc338495030
2 系统设计方案
_Toc506973488
_Toc150138956
_Toc150781602
_Toc150781649
_Toc150782607
_Toc231367356
_Toc232428999
_Toc389233363
_Toc389233416
_Toc389233469
_Toc389233522
_Toc389233575
_Toc389233628
_Toc389233681
_Toc389233734
_Toc389233787
_Toc389233840
_Toc389233893
_Toc389233946
_Toc389233999
_Toc389234216
需求分析
_Toc389233364
_Toc389233417
_Toc389233470
_Toc389233523
_Toc389233576
_Toc389233629
_Toc389233682
_Toc389233735
_Toc389233788
_Toc389233841
_Toc389233894
_Toc389233947
_Toc389234000
系统总体需求分析
农产品交易平台主要从两个功能进行需求,即该系统需要完成“我要买的用户功能模块”、“我要卖管理员功能模块”两个子系统功能,实现交易双方的农产品交易。
(1)用户模块。买家通过我要买完成农产品交易购买。
(2)管理员模块。卖家通过我要卖完成农产品交易销售。
本方案的软件系统设计原则是围绕着系统建设目标,并结合业务现状以及对现状的分析、软件需求分析而制定的。其设计宗旨是推广优质产品,提供优质服务,设计方针是全面性、及时性、便捷性、安全性、公众化。包括如下几个方面:
(1)创新性原则。创新代表着进步,技术和方法的创新,可以更好地保证系统运作效率。把具有创新性的管理理念、管理方法和实现技术引入农产品管理和农产品交易中,可以更好地满足扩建农产品批发市场的功能需求,充分发挥该项目在推广优质产品,提供优质服务方面的业务职能。
(2)现实可操作性。先进的技术只有结合现实的环境,才能够真正转化为生产力。农产品关系到国家的命脉,具有举足轻重的地位,因此,国家从保护农民利益出发,制定了“三项政策、一项改革”。因此,在进行系统设计时,在保证坚决执行国家农产品政策的基础上,具有良好的现实可操作性和政策调整后的可拓展性。
(3)系统设计应体现先进的管理思想的原则。管理软件系统的根本目标就是把管理中的结构化问题利用先进的软件技术来实现程序化,管理的结构化问题程序化以后会大大提高管理效率,降低管理成本。同时,建立控制模型、分析模型解决计划与宏观控制的问题,起到辅助决策的作用。
(4)系统结构代表软件主流方向的原则。软件项目开发周期较长,特别是项目规模大,农产品市场又正处在改革的阶段,国家农产品政策的变化和市场的变化都会对系统产生影响。那种在系统分析阶段后基本冻结系统需求的传统做法,很可能导致系统在交付运行时某些功能已不适用或不必要,跟不上系统需求的变化发展。对此,系统总体设计必须充分考虑保证所采用的软件平台与开发技术能够代表主流方向,以保证系统在较长的一段时间内不会淘汰。
_Toc389233365
_Toc389233418
_Toc389233471
_Toc389233524
_Toc389233577
_Toc389233630
_Toc389233683
_Toc389233736
_Toc389233789
_Toc389233842
_Toc389233895
_Toc389233948
_Toc389234001
系统的性能要求
1.磁盘容量要求:
本系统属于B/S模式构架,因此存储容量较小,数据库系统也不是很大,数据库文件占用空间也不是很大。一些图片资源在文件中也不会占用很大的空间 [5]。
2.安全性要求:
本系统有着权限设置,不同的用户有不同的权限:游客只能查看网页,不能发布求购信息;注册的普通用户只能用户浏览公告、浏览产品、订单查询、我的产品;管理员可以赋予管理员的权限,可以对网站进行任何的操作,对订单的处理。同时对于非法用户,不能够根据用户的相对网址来访问网站和对网站进行任何操作,必须进行登录才可以访问操作 [5]。
3.适应性要求:
要求界面友好,菜单清楚,普通农民和客户都能很快熟悉网站 [5]。
_Toc136303496
_Toc389233366
_Toc389233419
_Toc389233472
_Toc389233525
_Toc389233578
_Toc389233631
_Toc389233684
_Toc389233737
_Toc389233790
_Toc389233843
_Toc389233896
_Toc389233949
_Toc389234002
_Toc136303497
系统分析的任务与步骤
_Toc136303498
了解用户要求。此用户即为网站的使用人员(管理员,会员)。了解他们在网站功能、性能等方面的要求及用户在硬件配置、开发周期处理方式等方面的意向与打算。把用户要求成文,完成网站分析报告。网站的逻辑模型由一系列的图表和文字组成。在逻辑上描述了系统的目标和所具备的功能于性能 [8]。
描述网站。在详细调查的基础上,用一定的图标、文字描述;
分析用户新的要求,改进现行模型,形成新系统的逻辑模型。
_Toc136303499
编写系统分析说明书。
_Toc230433550
_Toc230710744
_Toc308982208
_Toc324186799
_Toc329875203
_Toc329875259
_Toc329875470
_Toc336702307
_Toc362251366
_Toc362252343
_Toc377126932
_Toc387325373
_Toc387925033
_Toc389233367
_Toc389233420
_Toc389233473
_Toc389233526
_Toc389233579
_Toc389233632
_Toc389233685
_Toc389233738
_Toc389233791
_Toc389233844
_Toc389233897
_Toc389233950
_Toc389234003
_Toc389234217
总体功能模块
本系统分系统管理员和用户两个用户权限。总功能图如图1所示。
图1系统功能需求分析
_Toc228629299
_Toc228629445
_Toc228630370
_Toc230433551
_Toc230710745
_Toc308982209
_Toc324186800
_Toc329875204
_Toc329875260
_Toc329875471
_Toc336702308
_Toc362251367
_Toc362252344
_Toc377126933
_Toc387325374
_Toc387925034
_Toc389233368
_Toc389233421
_Toc389233474
_Toc389233527
_Toc389233580
_Toc389233633
_Toc389233686
_Toc389233739
_Toc389233792
_Toc389233845
_Toc389233898
_Toc389233951
_Toc389234004
系统管理员功能模块
系统管理员的主要功能是农产品分类管理、产品管理、用户管理、订单管理以及交易平台公告管理。
功能图如下图2所示:
图2 系统管理员功能图
修改管理员密码功能: 为平台管理提供安全系数
产品分类管理: 添加新农产品分类和删除
产品管理:①添加新产品:产品信息包括 分类名、价格、产品简介、操作提交和返回。
②添加成功以后,可以对产品进行推荐,删除,编辑,查看,上传对应产品图片。
③查找产品库里已有的产品信息。
农产品交易网公告管理:发布公告、管理公告。
新注册用户管理: 锁定用户账户,和解除用户账户。
订单管理: 对订单进行处理,并有效查看产品明细
_Toc329875205
_Toc329875261
_Toc329875472
_Toc336702309
_Toc362251368
_Toc362252345
_Toc377126934
_Toc387325375
_Toc387925035
_Toc389233369
_Toc389233422
_Toc389233475
_Toc389233528
_Toc389233581
_Toc389233634
_Toc389233687
_Toc389233740
_Toc389233793
_Toc389233846
_Toc389233899
_Toc389233952
_Toc389234005
用户功能模块
用户的功能主要是注册登录、产品浏览搜索、购买产品、购物车、订单管理、公告浏览。功能图如图3所示
图3用户的功能图
1.新品展示:为用户提供购物平台。
产品分类浏览功能:①显示产品类别列表,例如:种植果蔬,养殖水产,副食特产,园林园艺,农资供应,农机供应。
② 根据用户选择的类别显示产品部分信息;
③ 显示产品详细信息;
④ 进入购物车购物。
新品上架:
① 显示最新农产品的部分信息;
② 可以进入农产品的详细信息;
③ 进入购物车购物。
商品搜索:
根据会员输入的部分产品信息,查找相应产品;例如:已知产品库中包括关键字“西瓜”的产品,在将“产品”输入到指定位置后,就可查找产品库中所有产品名听取中带有“西瓜”这两个关键字的所有产品。
② 显示产品详细信息;
③ 进入购物车购物。
2.用户信息管理:会员账号的注册登录退出。
注册会员:① 根据系统信息提示注册生成会员ID号;
②检验用户输入信息的正确性;
③保存会员信息。
④退出个人账户
3.购物车:显示用户购物的信息
添加购物车:将选中的产品信息添加到购物车中;
查看购物车:
①显示客户所选产品的列表;
② 修改购买数量;
③ 自动和计金额。
修改购物车:
① 改变购物数量;
② 删除要购买的商品。
4.收银台:生成订单,写入库存。
填写结帐信息: 要求会员输入用户名和密码;
生成订单;
结账:进入库存,查看库内商品是否可以满足购买要求,符合要求的商品结账,不符合要求的商品给与会员提示,显示交费金额信息。
_Toc299281392
_Toc308982237
_Toc321040305
_Toc324186817
5.查看公告:网站提供一些近期公告;
_Toc329875207
_Toc329875263
_Toc329875474
_Toc336702310
_Toc362251369
_Toc362252346
_Toc377126935
_Toc387325376
_Toc387925036
_Toc389233370
_Toc389233423
_Toc389233476
_Toc389233529
_Toc389233582
_Toc389233635
_Toc389233688
_Toc389233741
_Toc389233794
_Toc389233847
_Toc389233900
_Toc389233953
_Toc389234006
_Toc389234218
系统业务描述
本系统分系统管理员和用户两个用户权限:系统管理员的主要功能是农产品商品分类管理、商品管理、用户管理、订单管理以及交易平台公告管理;用户的功能主要是注册登录、商品浏览搜索、购买商品、购物车、订单管理、公告浏览。
用例图如下图4所示:
图4系统业务描述
_Toc362251370
_Toc362252347
_Toc377126936
_Toc387325377
_Toc387925037
_Toc389233371
_Toc389233424
_Toc389233477
_Toc389233530
_Toc389233583
_Toc389233636
_Toc389233689
_Toc389233742
_Toc389233795
_Toc389233848
_Toc389233901
_Toc389233954
_Toc389234007
_Toc389234219
程序流程图
用户购物流程图如图5所示
图5用户购物流程图
用户注册流程图6
图 6用户注册流程图
用户登录流程图7
图7 用户登录流程
_Toc387325366
_Toc387925038
_Toc389233372
_Toc389233425
_Toc389233478
_Toc389233531
_Toc389233584
_Toc389233637
_Toc389233690
_Toc389233743
_Toc389233796
_Toc389233849
_Toc389233902
_Toc389233955
_Toc389234008
_Toc389234220
3系统的开发环境及技术简介
_Toc310982818
_Toc232825680
_Toc312744257
_Toc324186783
_Toc329875195
_Toc329875252
_Toc329875463
_Toc336702300
_Toc362251359
_Toc362252336
_Toc377126926
_Toc387325367
_Toc387925039
_Toc389233373
_Toc389233426
_Toc389233479
_Toc389233532
_Toc389233585
_Toc389233638
_Toc389233691
_Toc389233744
_Toc389233797
_Toc389233850
_Toc389233903
_Toc389233956
_Toc389234009
_Toc389234221
开发工具 Microsoft Visual Studio 2008
_Toc310982819
_Toc232825681
_Toc312744258
_Toc324186784
_Toc329875196
_Toc329875253
_Toc329875464
_Toc336702301
_Toc362251360
_Toc362252337
Microsoft Visual Studio 2008是面向Windows Vista、Office 2007、Web 的下一代开发工具,代号“Orcas”,是对Visual Studio 2005一次及时、全面的升级。
VS2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。使用Visual Studio 2008可以高效开发Windows应用。设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。同时Visual Studio 2008支持项目模板、调试器和部署程序。Visual Studio 2008可以高效开发Web应用,集成了AJAX ,包含AJAX项目模板,它还可以高效开发Office应用和Mobile应用。
一个好的开发环境可以让开发工作事半功倍,微软公布了最新版Visual Studio Shell的预览,一起来看一下:我们可以发现新版VS的开发界面分为两个版本:整合模式和孤立模式,分别对基于语言的开发和基于特别工具的开发作了优化。并将Iron Python引入了Visual Studio,该界面将在Visual Studio 2008的Beta2版本中出现。
微软开发者部门的副总裁索玛塞加在其博客中表示,尽管Visual Studio 2008软件开发平台是2008年2月份一次产品开发活动的一部分,微软计划于2007年年底开始销售这款产品。 据InfoWorld网站报道称,本周早些时候,微软宣布将于2008年2月27日举办的一次产品发布会上发布Visual Studio 2008、Windows Server 2008、SQL Server 2008。微软曾表示计划在今年晚些时候发售Visual Studio 2008。索玛塞加表示,微软仍然计划在2007年发布这款产品。他说,尽管我们将在明年2月份集中发布数款产品,但根据客户的反馈,我们仍然计划在今年年底时发售Visual Studio 2008和.Net FX 。
微软的一名代表详细阐述了相关计划。这名代表在一封电子邮件中说,微软希望在今年年底前发售Visual Studio 2008。客户的反馈将最终决定产品的发售时间。2月份的发布会是一个机会,将向客户、合作伙伴、社区展示微软的创新成果。
微软在今年的合作伙伴会议上还宣布,其Software Licensing and Protection Services产品将于今年10月份发布。它包含帮助ISV在内的开发人员保护知识产权、开发和许可产品版本、跟踪产品和特性使用、与后端过程整合的工具。
_Toc377126927
_Toc387325368
_Toc387925040
_Toc389233374
_Toc389233427
_Toc389233480
_Toc389233533
_Toc389233586
_Toc389233639
_Toc389233692
_Toc389233745
_Toc389233798
_Toc389233851
_Toc389233904
_Toc389233957
_Toc389234010
_Toc389234222
数据库SQLserver
SQL Server 是一个具备完全 Web 支持的数据库产品,提供了对可扩展标记语言 (XML) 的核心支持以及在 Internet 上和防火墙外进行查询的能力,提供了以 Web 标准为基础的扩展数据库编程功能。丰富的 XML 和 Internet 标准支持允许使用内置的存储过程以 XML 格式轻松存储和检索数据。
SQL Server 提供强大的开发工具和各类开发特性,在大大提高开发效率的同时,进一步拓展应用空间,带来新的商业应用机遇。例如,XML数据库与Web Service的支持将使您的应用实现Internet数据互联,.Net集成极大的扩展了开发空间,异构数据集成、Service Broker使您的数据和其它应用无缝集成,各种新数据类型和T-SQL扩展带来了诸多灵活性。 [6]C#、、XQuery、XMLA、 、SMO、AMO等都将成为SQL Server数据平台上开发数据相关应用的有力工具。
_Toc329875197
_Toc329875254
_Toc329875465
_Toc336702302
_Toc362251361
_Toc362252338
_Toc377126928
_Toc387325369
_Toc387925041
_Toc389233375
_Toc389233428
_Toc389233481
_Toc389233534
_Toc389233587
_Toc389233640
_Toc389233693
_Toc389233746
_Toc389233799
_Toc389233852
_Toc389233905
_Toc389233958
_Toc389234011
_Toc389234223
B/S体系结构
本系统所面向的对象是广大的互连网用户。因此,将要采用比较流行的B/S三层结构。如下图图8所示
显
示逻辑
事务处理逻辑
数据处理逻辑
图8 B/S三层结构图
B/S体系结构与C/S体系结构相比不仅具有其全部的优点,而且又有C/S体系结构所不具备的独特优势 [7]:
(1)开放的标准:B/S所采用的标准都是开放的、非专用的,是经过标准化组织所确定而非单一厂商所制定,保证了其应用的通用性和跨平台性。
(2)较低的开发和维护成本:B/S的应用只需在客户端安装通用的浏览器即可,维护和升级工作都在服务器端进行,不需对客户端进行任何改变,故而大大降低了开发和维护的成本。
(3)用户使用简单,界面友好:B/S用户的界面都在统一的浏览器上,浏览器易于使用、界面友好,又因为它不再负责数据的存取和复杂数据计算等任务,只需要进行显示,因而大大降低了对客户端的要求。
从以上的分析与比较可以看出,B/S模式具有C/S模式无法替代的优越性:它简化了系统的开发和维护,并且特别适用于网上信息发布。
_Toc377126929
_Toc387325370
_Toc387925042
_Toc389233376
_Toc389233429
_Toc389233482
_Toc389233535
_Toc389233588
_Toc389233641
_Toc389233694
_Toc389233747
_Toc389233800
_Toc389233853
_Toc389233906
_Toc389233959
_Toc389234012
_Toc389234224
开发框架
是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术。 指 Active Server Pages(动态服务器页面) ,运行于 IIS 之中的程序 。
使用一种字符基础的,分级的配置系统,虚拟服务器环境和应用程序的设置更加简单。因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。这种被称为"Zero Local Administration"的哲学观念使的基于应用的开发更加具体和快捷 [4]。一个的应用程序在一台服务器系统的安装只需要简单的拷贝一些必须的文件,不需要系统的重新启动,一切就是这么简单。多处理器环境的可靠性已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,将很大的提高运行速度。即使你现在的应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高他们的效能,但现在的ASP却做不到这一点。自定义性和可扩展性设计时考虑了让网站开发人员可以在自己的代码中自己定义"plug-in"的模块。这与原来的包含关系不同,可以加入自己定义的任何组件。网站程序的开发从来没有这么简单过。安全性基于Windows认证技术和每应用程序配置,你可以确保你的原程序是绝对安全的。的语法在很大程度上与 ASP 兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。可以通过在现有 ASP 应用程序中逐渐添加功能,随时增强 ASP 应用程序的功能。是一个已编译的、基于 .NET 的环境,把基于通用语言的程序在服务器上运行。将程序在服务器端首次运行时进行编译,比ASP即时解释程序速度上要快很多.而且是可以用任何与 .NET 兼容的语言(包括Visual Basic .NET、C# 和 JScript .NET.) [4]创作应用程序。另外,任何应用程序都可以使用整个 .NET Framework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。可以无缝地与 WYSIWYG HTML编辑器和其他编程工具(包括Microsoft Visual Studio .NET)一起工作。这不仅使得 Web 开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到 Web 页的 GUI 和完全集成的调试支持 [14]。 当创建应用程序时,开发人员可以使用 Web窗体或 XML Web services,或以他们认为合适的任何方式进行组合。每个功能都能得到同一结构的支持,使您能够使用身份验证方案,缓存经常使用的数据,或者对应用程序的配置进行自定义. 如果你从来没有开发过网站程序,那么这不适合你,你应该至少掌握一些HTML语言和简单的Web开发术语(不过我相信如果有兴趣的话是可以很快的掌握的)。你不需要先前的ASP开发经验(当然有经验更好),但是你必须了解交互式Web程序开发的概念,包含窗体,脚本,和数据接口的概念,如果你具备了这些条件的话,那么你就可以在的世界开始展翅高飞了。
_Toc377126930
_Toc387325371
_Toc387925043
_Toc389233377
_Toc389233430
_Toc389233483
_Toc389233536
_Toc389233589
_Toc389233642
_Toc389233695
_Toc389233748
_Toc389233801
_Toc389233854
_Toc389233907
_Toc389233960
_Toc389234013
_Toc389234225
开发语言C#
C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角 [11]。
C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
C#是面向对象的编程语言 [14]。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
C#使得C++程序员可以高效的开发程序,且因可调用由 C/C++ 编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。
_Toc329875208
_Toc329875264
_Toc329875475
_Toc336702311
_Toc362251371
_Toc362252348
_Toc377126937
_Toc387325378
_Toc387925044
_Toc389233378
_Toc389233431
_Toc389233484
_Toc389233537
_Toc389233590
_Toc389233643
_Toc389233696
_Toc389233749
_Toc389233802
_Toc389233855
_Toc389233908
_Toc389233961
_Toc389234014
_Toc389234226
4数据库设计与实现
_Toc308982238
_Toc324186818
_Toc329875209
_Toc329875265
_Toc329875476
_Toc336702312
_Toc362251372
_Toc362252349
_Toc377126938
_Toc387325379
_Toc387925045
_Toc389233379
_Toc389233432
_Toc389233485
_Toc389233538
_Toc389233591
_Toc389233644
_Toc389233697
_Toc389233750
_Toc389233803
_Toc389233856
_Toc389233909
_Toc389233962
_Toc389234015
_Toc389234227
系统和数据库的配置
系统按通用的B/S(浏览器、服务器)模式进行设计(如图9所示)
图9 B/S
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致 [9]。
_Toc299281197
_Toc299281396
_Toc308982245
_Toc324186821
_Toc329875211
_Toc329875267
_Toc329875478
_Toc336702314
_Toc362251374
_Toc362252351
_Toc377126940
_Toc387325381
_Toc387925047
_Toc389233381
_Toc389233434
_Toc389233487
_Toc389233540
_Toc389233593
_Toc389233646
_Toc389233699
_Toc389233752
_Toc389233805
_Toc389233858
_Toc389233911
_Toc389233964
_Toc389234017
_Toc389234229
实体与属性图
产品表信息(产品编号、产品名、产品图片、分类名、价格、产品简介、是否推荐、添加时间、产品点击数、产品销量)如图11
图 11
用户表信息(主键、用户名、密码、真实姓名、地址、手机、邮箱、QQ、注册时间、账户是否锁定、用户角色)如图12
图12
分类表信息(主键、分类名称)如图13
图13
公告表信息(主键、公告标题、公告内容、添加时间)如图14
图14
购物车表信息(主键、关联的用户、购买的产品、购买的数量、产品的ID、单价、总价)如图15所示
图15
订单表信息(主键、订单关联的用户、收货人姓名、收货地址、联系方式、订单号、订单状态、订单生成时间、订单明细、总价)如图16所示
图16
_Toc329875210
_Toc329875266
_Toc329875477
_Toc336702313
_Toc362251373
_Toc362252350
_Toc377126939
_Toc387325380
_Toc387925046
_Toc389233380
_Toc389233433
_Toc389233486
_Toc389233539
_Toc389233592
_Toc389233645
_Toc389233698
_Toc389233751
_Toc389233804
_Toc389233857
_Toc389233910
_Toc389233963
_Toc389234016
_Toc389234228
概念结构设计
在概念设计阶段中,从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。然后再把概念模式转换成逻辑模式。将概念设计从设计过程中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定DBMS的限制。利用ER方法进行数据库的概念设计,可分成三步进行:首先设计局部ER模式,然后把各局部ER模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终的模式,即概念模式。
概念模型设计的典型方法是用E-R图方法,即用实体-联系模型表示。E-R方法是用E-R图来描述显示世界,E-R图包含三个基本成分:实体、联系、属性。它直观易懂,能够比较准确地反映现实世界的信息联系,从概念上表示一个数据库的信息组织情况。
本系统E-R图 图10如下
图 10 系统E-R图
_Toc299281198
_Toc299281397
_Toc308982246
_Toc324186822
_Toc329875212
_Toc329875268
_Toc329875479
_Toc336702315
_Toc362251375
_Toc362252352
_Toc377126941
_Toc387325382
_Toc387925048
_Toc389233382
_Toc389233435
_Toc389233488
_Toc389233541
_Toc389233594
_Toc389233647
_Toc389233700
_Toc389233753
_Toc389233806
_Toc389233859
_Toc389233912
_Toc389233965
_Toc389234018
_Toc389234230
数据库表的详细设计
_Toc389233383
_Toc389233436
_Toc389233489
_Toc389233542
_Toc389233595
_Toc389233648
_Toc389233701
_Toc389233754
_Toc389233807
_Toc389233860
_Toc389233913
_Toc389233966
_Toc389234019
订单表
订单表:用于记录订单的相关信息,主要字段有:订单关联的用户、收货人姓名、收货地址、联系方式、订单号、订单状态、订单生成时间、订单明细、总价。如图表17
订单表 t_dingdan
id int主键
username nvarchar(50) 订单关联的用户
truename nvarchar(50) 收货人姓名
address nvarchar(50) 收货地址
phone nvarchar(50) 联系方式
orderid nvarchar(50) 订单号
zhuangtai nvarchar(50) 订单状态
createtime nvarchar(50) 订单生成时间
mingxi nvarchar(MAX) 订单明细
zongjia float总价
_Toc230433572
_Toc230710782
_Toc308982258
_Toc324186823
_Toc329875213
_Toc329875269
_Toc329875480
_Toc336702316
_Toc362251376
_Toc362252353
1订单表
名称
类型
备注
Id
int
主键
username
nvarchar(50)
订单关联的用户
truename
nvarchar(50)
收货人姓名
address
nvarchar(50)
收货地址
phone
nvarchar(50)
联系方式
orderid
nvarchar(50)
订单号
zhuangtai
nvarchar(50)
订单状态
createtime
nvarchar(50)
订单生产时间
mingxi
nvarchar(MAX)
订单明细
zongjia
float
总价
图表17
_Toc389233384
_Toc389233437
_Toc389233490
_Toc389233543
_Toc389233596
_Toc389233649
_Toc389233702
_Toc389233755
_Toc389233808
_Toc389233861
_Toc389233914
_Toc389233967
_Toc389234020
分类表
分类表:用于记录不同类别农产品的表,主要字段有主键、分类名称。如图表18
分类表t_fenlei
id int主键
mingchen nvarchar(50) 分类名称
2分类表
名称
类型
备注
Id
int
主键
mingchen
nvarchar(50)
分类名称
图表18
_Toc389233385
_Toc389233438
_Toc389233491
_Toc389233544
_Toc389233597
_Toc389233650
_Toc389233703
_Toc389233756
_Toc389233809
_Toc389233862
_Toc389233915
_Toc389233968
_Toc389234021
公告表
公告表:用于记录发布农产品交易网上的一些公告信息,主要包括的字段有,主键,公告标题、公告内容、添加时间。如图表19
公告表 t_gonggao
id int 主键
biaoti nvarchar(50) 公告标题
neirong nvarchar(MAX) 公告内容
createtime nvarchar(50) 添加时间
3 公告表
名称
类型
备注
Id
int
主键
biaoti
nvarchar(50)
公告标题
neirong
nvarchar(MAX)
公告内容
createtime
nvarchar(50)
添加时间
图表19
_Toc389233386
_Toc389233439
_Toc389233492
_Toc389233545
_Toc389233598
_Toc389233651
_Toc389233704
_Toc389233757
_Toc389233810
_Toc389233863
_Toc389233916
_Toc389233969
_Toc389234022
购物车表
购物车表:用于收藏用户购买的产品,并进行计价处理,主要包括的字段有唯一标识的ID主键、关联的用户、购买的商品、购买的数量、商品的ID、单价、总价。如图表20
购物车表 t_gouwuche
id int主键
username nvarchar(50) 关联的用户
spname nvarchar(50) 购买的商品
num int购买的数量
spid int商品的ID
jiage float单价
zongjia float总价
4 购物车表
名称
类型
备注
Id
int
主键
username
nvarchar(50)
关联的用户
spname
nvarchar(50)
购买的产商品
num
int
购买的数量
spid
int
产品的id
jiage
float
单价
zongjia
float
总价
图表20
_Toc389233387
_Toc389233440
_Toc389233493
_Toc389233546
_Toc389233599
_Toc389233652
_Toc389233705
_Toc389233758
_Toc389233811
_Toc389233864
_Toc389233917
_Toc389233970
_Toc389234023
商品表
商品表:用于记录商品信息,主要包括的字段有唯一标识的ID主键,商品名、商品图片、分类名、价格、商品简介、是否推荐 未推荐 已推荐、添加时间、商品点击数、商品销量。如图表21
商品表t_product
id int主键
spname nvarchar(50) 商品名
tupian nvarchar(50) 商品图片
fenlei nvarchar(50) 分类名
jiage nvarchar(50) 价格
jianjie nvarchar(MAX) 商品简介
tuijian nvarchar(50) 是否推荐 未推荐 已推荐
createtime nvarchar(50) 添加时间
dianjishu nvarchar(50) 商品点击数
xiaoliang nvarchar(50) 商品销量
5 商品表
名称
类型
备注
Id
int
主键
spname
nvarchar(50)
产品名
tupian
nvarchar(50)
产品图片
fenlei
nvarchar(50)
分类名
jiage
nvarchar(50)
价格
jianjie
nvarchar(MAX)
商品简介
tuijian
nvarchar(50)
是否推荐,未推荐、已推荐
createtime
nvarchar(50)
添加时间
dianjishu
nvarchar(50)
产品点击数
xiaoliang
nvarchar(50)
产品销量
图表21
_Toc389233388
_Toc389233441
_Toc389233494
_Toc389233547
_Toc389233600
_Toc389233653
_Toc389233706
_Toc389233759
_Toc389233812
_Toc389233865
_Toc389233918
_Toc389233971
_Toc389234024
用户表
用户表:用于记录用户信息,主要包括的字段有唯一标识的主键ID、用户名、评论者ID、评论所属的日志ID、评论日期。如图表22
用户表 t_user
id int主键
username nvarchar(50) 用户名
password varchar(50) 密码
truename nvarchar(50) 真实姓名
address nvarchar(50) 地址
phone nvarchar(50) 手机
email nvarchar(50) 邮箱
qq nvarchar(50) QQ
createtime nvarchar(50) 注册时间
suo nvarchar(50) 账户是否锁定 正常 已锁定
role nvarchar(50) 用户角色
6 用户表
名称
类型
备注
Id
int
主键
username
nvarchar(50)
用户名
password
nvarchar(50)
密码
truename
nvarchar(50)
真实姓名
address
nvarchar(50)
地址
phone
nvarchar(50)
手机
email
nvarchar(50)
邮箱
qq
nvarchar(50)
QQ
createtime
nvarchar(50)
注册时间
suo
nvarchar(50)
账户是否锁定 正常、已锁定
role
nvarchar(50)
用户角色
图表22
_Toc326539964
_Toc389233389
_Toc389233442
_Toc389233495
_Toc389233548
_Toc389233601
_Toc389233654
_Toc389233707
_Toc389233760
_Toc389233813
_Toc389233866
_Toc389233919
_Toc389233972
_Toc389234025
_Toc389234231
数据库连接与实现
_Toc329875214
_Toc329875270
_Toc329875481
_Toc336702317
_Toc362251377
_Toc362252354
_Toc377126943
_Toc387325384
在设计中我采用的是OLEDB方式连接SQL Server数据库,服务器名:ETERNITY,账户为:sa,密码为:空,连接字符串放在文件内。
class SQLHelper
{
Private static string strCon=@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\;Integrated Security=True;User Instance=True";
public static int ExecuteNonQuery(string sql,params SqlParameter[] parameters) {
string dataDir = ;
if ((@"\bin\Debug\") ||
(@"\bin\Release\"))
{
dataDir= (dataDir).;
("DataDirectory", dataDir);
}
using (SqlConnection conn = new SqlConnection(strCon))
{
();
using (SqlCommand cmd = ())
{
= sql;
foreach(SqlParameter parameter in parameters){
(parameter);
}
return ();}}
_Toc387925049
_Toc389233390
_Toc389233443
_Toc389233496
_Toc389233549
_Toc389233602
_Toc389233655
_Toc389233708
_Toc389233761
_Toc389233814
_Toc389233867
_Toc389233920
_Toc389233973
_Toc389234026
_Toc389234232
5农产品交易平台系统实现
_Toc329875215
_Toc329875271
_Toc329875482
_Toc336702318
_Toc362251378
_Toc362252355
_Toc377126944
_Toc387325385
_Toc387925050
_Toc389233391
_Toc389233444
_Toc389233497
_Toc389233550
_Toc389233603
_Toc389233656
_Toc389233709
_Toc389233762
_Toc389233815
_Toc389233868
_Toc389233921
_Toc389233974
_Toc389234027
_Toc389234233
用户登录
图23登录界面
图23界面,本界面是用户登录的主界面,对的页面为 ,登录的主要代码在中,当用户点击登录按钮时,则触发Button1_Click方法,登录的逻辑都写在这里面。
protected void Button1_Click(object sender, EventArgs e)
{
if (!IsValid)
{
return;
}
//用户登录sql
string sql = "select * from t_user where role='用户' and username='" +
+ "' and password= '" + + "' and suo='正常' ";
DataTable dt = (sql);
if ( <= 0) {
("<script language=javascript>alert('登录失败,用户名或者密码错误!');='';</script>");
return;
}
string username ="";
for (int i = 0; i < ; i++)
{
DataRow row = [i];
username = (row["username"]);
}
Session["yonghu"] = username;
("<script language=javascript>alert('登录成功');='';</script>");
return;
}
首先从页面获取用户名,密码等信息,然后组装登录查询的sql语句,string sql = "select * from t_user where role='用户' and username='" + + "' and password= '" + + "' and suo='正常' "; 把sql语句放入这个方法中执行(sql);查出dt,判断是否大于0,大于0则说明登录成功,否则则登录失败。
_Toc377126945
_Toc387325386
_Toc387925051
_Toc389233392
_Toc389233445
_Toc389233498
_Toc389233551
_Toc389233604
_Toc389233657
_Toc389233710
_Toc389233763
_Toc389233816
_Toc389233869
_Toc389233922
_Toc389233975
_Toc389234028
_Toc389234234
用户注册界面
图24注册界面
对应的页面为, 对应的代码则是,当用户点击提交按钮时则触发protected void Button1_Click(object sender, EventArgs e)
{
if (!IsValid)
{
return;
}
//判断改用户是否已经注册
string sql = "select count(1) from t_user where role='用户' and username='" + + "' ";
int count = ((sql));
if(count>0){
("<script language=javascript>alert('注册失败,该用户名已经存在');='';</script>");
return;
}
//注册的sql语句
sql = @"insert into t_user(username,password,truename,address,phone,email,qq,createtime,suo,role)
values('" ++"','"++"','"++"','"++"','"++"','"
++"','"++"','"+()+"','"+"正常"+"','"+"用户"+"')" ;
(sql);
("<script language=javascript>alert('注册成功');='';</script>");
}
以上代码,该段代码是用户注册的逻辑。首先判断该用户名是否已经被注册,string sql = "select count(1) from t_user where role='用户' and username='" + + "' ";当count大于0时则说明该用户名已经被注册。否则则把注册的用户信息插入到数据库,调用以下sql语句,sql= @"insert into t_user(username,password,truename,address,phone,email,qq,createtime,suo,role) values('"++"','"++"','"++"','"++"','"++"','"++"','"++"','"+()+"','"+"正常"+"','"+"用户"+"')" ;插入成功后给页面返回注册功能的信息。界面如图24所示。
_Toc377126946
_Toc387325387
_Toc387925052
_Toc389233393
_Toc389233446
_Toc389233499
_Toc389233552
_Toc389233605
_Toc389233658
_Toc389233711
_Toc389233764
_Toc389233817
_Toc389233870
_Toc389233923
_Toc389233976
_Toc389234029
_Toc389234235
网站主界面
图25网站主界面
图25,对应的页面为, 在该页面对应了对商品信息的展示,公告信息的展示,商品排行榜信息的展示,主要用到了asp:Repeater控件来展示
namespace WebApplication6
{
public partial class index :
{
protected void Page_Load(object sender, EventArgs e)
{
string spname = Request["spname"];
string fenlei = Request["fenlei"];
string order = Request["order"];
string sql = "select * from t_product where ";
if (fenlei != null) {
sql = sql + " fenlei='" + fenlei + "' ";
sql = sql + " and ";
}
if (spname != null)
{
sql = sql + " spname like '%" + spname + "%' ";
sql = sql + " and ";
}
sql = sql + " 1=1 ";
if (order == "1")
{
sql = sql + " order by id desc";
}
else if (order == "2")
{
sql = sql + " order by tuijian desc,id desc";
}
else {
sql = sql + " order by id desc";
}
DataTable dt = (sql);
PagedDataSource Pgds = new PagedDataSource();
= ;
= true;
= 10;
= ();
int CurrentPage;
if (["Page"] != null)
{
CurrentPage = (["Page"]);
}
else
{
CurrentPage = 1;
}
= CurrentPage - 1;
= ();
if (!)
{
= + "?Page=" + (CurrentPage - 1);
}
if (!)
{
= + "?Page=" + (CurrentPage + 1);
}
= Pgds;
();
}
}
}
寻找数据源,设置允许分页,每页显示为6行,显示总共页数 ,请求页码为不为null设置当前页,否则为第一页,当前页所引为页码-1,显示当前页码,如果不是第一页,通过参数Page设置上一页为当前页-1,否则不显示连接为当前请求虚拟路径 End If 如果不是最后一页,通过参数Page设置下一页为当前页+1,否则不显示连接, 为当前请求虚拟路径, 最后模板绑定数据源
_Toc389233394
_Toc389233447
_Toc389233500
_Toc389233553
_Toc389233606
_Toc389233659
_Toc389233712
_Toc389233765
_Toc389233818
_Toc389233871
_Toc389233924
_Toc389233977
_Toc389234030
_Toc389234236
产品搜索功能和销量排行功能
图26
_Toc389233395
_Toc389233448
_Toc389233501
_Toc389233554
_Toc389233607
_Toc389233660
_Toc389233713
_Toc389233766
_Toc389233819
_Toc389233872
_Toc389233925
_Toc389233978
_Toc389234031
销量排行功能和公告管理实现的代码
图27
public partial class shop :
{
protected void Page_Load(object sender, EventArgs e)
{
PagedDataSource Pgds = new PagedDataSource();
DataTable dt = ("select * from t_fenlei ");
= ;
= Pgds;
();
dt = (@"select * from ( SELECT row_number() over(order by id desc) AS num , *
FROM t_gonggao ) as t where num<=5");
= ;
= Pgds;
();
dt = (@"select * from ( SELECT row_number() over(order by xiaoliang desc) AS num , *
FROM t_product ) as t where num<=10");
= ;
= Pgds;
();
}
}
_Toc389233396
_Toc389233449
_Toc389233502
_Toc389233555
_Toc389233608
_Toc389233661
_Toc389233714
_Toc389233767
_Toc389233820
_Toc389233873
_Toc389233926
_Toc389233979
_Toc389234032
产品搜索功能实现代码
public static object ExecuteScalar(string sql, params SqlParameter[] parameters)
{
string dataDir = ;
if ((@"\bin\Debug\") ||
(@"\bin\Release\"))
{
dataDir = (dataDir).;
("DataDirectory", dataDir);
}
using (SqlConnection conn = new SqlConnection(strCon))
{
();
using (SqlCommand cmd = ())
{
= sql;
foreach (SqlParameter parameter in parameters)
{
(parameter);
}
return ();
}
}
}
public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters)
{
string dataDir = ;
if ((@"\bin\Debug\") ||
(@"\bin\Release\"))
{
dataDir = (dataDir).;
("DataDirectory", dataDir);
}
using (SqlConnection conn = new SqlConnection(strCon))
{
();
using (SqlCommand cmd = ())
{
= sql;
foreach (SqlParameter parameter in parameters)
{
(parameter);
}
DataSet dataset = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
(dataset);
return [0];
}
}
}
}
_Toc389233397
_Toc389233450
_Toc389233503
_Toc389233556
_Toc389233609
_Toc389233662
_Toc389233715
_Toc389233768
_Toc389233821
_Toc389233874
_Toc389233927
_Toc389233980
_Toc389234033
_Toc389234237
订单生成和订单处理功能实现
_Toc389233398
_Toc389233451
_Toc389233504
_Toc389233557
_Toc389233610
_Toc389233663
_Toc389233716
_Toc389233769
_Toc389233822
_Toc389233875
_Toc389233928
_Toc389233981
_Toc389234034
购物车功能
public partial class gouwuche :
{
protected void Page_Load(object sender, EventArgs e)
{
if (Session["yonghu"]==null)
{
("<script language=javascript>alert('请先登录');='';</script>");
return;
}
string username = (Session["yonghu"]);
string spid = Request["spid"];
string sql = " select * from t_product where id= " + spid;
DataTable dt = (sql);
string spname = "";
string jiage = "";
for (int i = 0; i < ; i++)
{
DataRow row = [i];
spname = (row["spname"]);
jiage = (row["jiage"]);
}
sql = " select count(1) from t_gouwuche where username= '" + username + "' and spid= " + spid;
int count = ((sql));
if (count>0)
{
("<script language=javascript>alert('该商品在购物车里已经存在,请勿重复添加');='';</script>");
return;
}
sql = @" insert into t_gouwuche (username,spname,num,spid,jiage,zongjia)
values('" + username + "','" + spname + "'," + 1 + "," + spid + "," + jiage + "," + jiage + ")";
(sql);
("<script language=javascript>alert('添加成功');='';</script>");
return;
}
}
把商品加入到购物车,首先判断该用户是否登录,获取商品信息,判断该商品在购物车里是否存在,把商品加入购物车。
_Toc389233399
_Toc389233452
_Toc389233505
_Toc389233558
_Toc389233611
_Toc389233664
_Toc389233717
_Toc389233770
_Toc389233823
_Toc389233876
_Toc389233929
_Toc389233982
_Toc389234035
订单生成
假定注册一个新用户,用户名为111,密码为111.登陆平台。
图27
图28
protected void Button1_Click(object sender, EventArgs e)
{
string username = (Session["yonghu"]);
DataTable dt = ("select * from t_gouwuche where username='" + username + "'");
double zongjia = 0;
string mingxi = "";
string sql2 = "";
for (int i = 0; i < ; i++)
{
DataRow row = [i];
double zongjia2 = (row["zongjia"]);
zongjia = zongjia + zongjia2;
mingxi = mingxi+ "商品名:"+ (row["spname"])+",购买数量:"
+(row["num"])+",单价:"+(row["jiage"])
+"¥,总价:"+(row["zongjia"])+"¥<br/>";
//更新商品的购买销量
sql2 = " update t_product set xiaoliang = xiaoliang + " + (row["num"])
+ " where id=" + (row["spid"]);
(sql2);
}
DateTime t1 = new DateTime();
t1 = (("2013-01-01 08:00:00"));
string orderid = (( - ) / 10000).ToString();
string sql = @" insert into t_dingdan(username,truename,address,phone,orderid,zhuangtai,createtime,mingxi,zongjia)
values('"+username+"','"++"','"++"','"++"','"
+orderid+"','"+"未处理"+"','"+()+"','"+mingxi+"',"+zongjia+") ";
(sql);
sql = " delete from t_gouwuche where username='" + username + "'";
(sql);
("<script language=javascript>alert('订单生成成功');='';</script>");
}
_Toc389233400
_Toc389233453
_Toc389233506
_Toc389233559
_Toc389233612
_Toc389233665
_Toc389233718
_Toc389233771
_Toc389233824
_Toc389233877
_Toc389233930
_Toc389233983
_Toc389234036
订单处理功能
图29
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string action = Request["action"];
if (action == "show")
{
= "查看明细";
string id = Request["id"];
t_dingdanTableAdapter adapter = new t_dingdanTableAdapter();
var rows = ((id)).Single();
= ;
}
else if (action == "del")
{
string id = Request["id"];
t_dingdanTableAdapter adapter = new t_dingdanTableAdapter();
var rows = ((id)).Single();
= "已处理";
(rows);
("<script language=javascript>alert('操作成功');='';</script>");
}
else
{
throw new Exception("action错误" + action);
}
}
}
_Toc389233401
_Toc389233454
_Toc389233507
_Toc389233560
_Toc389233613
_Toc389233666
_Toc389233719
_Toc389233772
_Toc389233825
_Toc389233878
_Toc389233931
_Toc389233984
_Toc389234037
_Toc389234238
添加新产品分类
图30
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string action = Request["action"];
if (action == "add")
{
= "添加新产品分类";
}
else if (action == "del")
{
string id = Request["id"];
t_fenleiTableAdapter adapter = new t_fenleiTableAdapter();
((id));
("<script language=javascript>alert('操作成功');='';</script>");
}
else
{
throw new Exception("action错误" + action);
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
if (!IsValid)
{
return;
}
string action = Request["action"];
if (action == "add")
{
t_fenleiTableAdapter adapter = new t_fenleiTableAdapter();
();
("<script language=javascript>alert('操作成功');='';</script>");
}
else
{
throw new Exception("action错误" + action);
}
}
public partial class productpic :
{
protected void Page_Load(object sender, EventArgs e)
{
string id = Request["id"];
string sql = "select * from t_product where id=" + id;
DataTable dt = (sql);
= "../upload/"+ ([0]["tupian"]);
}
protected void Button1_Click(object sender, EventArgs e)
{
string id = Request["id"];
string filename = "";
if ()//用户是否选择了文件
{
string uploadPath = ("/upload/");
//定义上传文件的格式
string[] arrExtension = { ".jpg", ".gif" };
//取得上传的文件名
filename = ;
// 取得上传文件的扩展名
string strExtension = (("."));
//判断上传文件是否合法
int flag = 0;
for (int i = 0; i < ; i++)
{
if ((arrExtension[i]))
{
flag = 1;
}
}
if (flag == 0)
{
("<script language=javascript>alert('上传失败,上传的文件必须为jpg或者gif格式');=' + id + "';</script>");
return;
}
//给上传的文件重新命名,用当前时间的毫秒数命名
DateTime t1 = new DateTime();
t1 = (("2013-01-01 08:00:00"));
string name = (( - ) / 10000).ToString();
filename = name + strExtension;
(uploadPath + filename);
}
string sql = "update t_product set tupian='" + filename + "' where id=" + id;
(sql);
("<script language=javascript>alert('操作成功');='';</script>");
}
}
_Toc389233402
_Toc389233455
_Toc389233508
_Toc389233561
_Toc389233614
_Toc389233667
_Toc389233720
_Toc389233773
_Toc389233826
_Toc389233879
_Toc389233932
_Toc389233985
_Toc389234038
_Toc389234239
交易平台公告功能实现
图31
public partial class gonggao :
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string action = Request["action"];
if (action == "add")
{
= "添加新公告";
}
else if (action == "edit")
{
= "编辑公告";
string id = Request["id"];
t_gonggaoTableAdapter adapter = new t_gonggaoTableAdapter();
var rows = ((id)).Single();
if (!())
{
= ;
}
if (!())
{
= ;
}
}
else if (action == "show")
{
= "查看公告";
string id = Request["id"];
t_gonggaoTableAdapter adapter = new t_gonggaoTableAdapter();
var rows = ((id)).Single();
if (!())
{
= ;
}
if (!())
{
= ;
}
= true;
= true;
= false;
}
else if (action == "del")
{
string id = Request["id"];
t_gonggaoTableAdapter adapter = new t_gonggaoTableAdapter();
((id));
("<script language=javascript>alert('操作成功');='';</script>");
}
else
{
throw new Exception("action错误" + action);
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
if (!IsValid)
{
return;
}
string action = Request["action"];
if (action == "add")
{
t_gonggaoTableAdapter adapter = new t_gonggaoTableAdapter();
(, , ());
("<script language=javascript>alert('操作成功');='';</script>");
}
else if (action == "edit")
{
string id = Request["id"];
t_gonggaoTableAdapter adapter = new t_gonggaoTableAdapter();
var rows = ((id)).Single();
= ;
= ;
(rows);
("<script language=javascript>alert('操作成功');='';</script>");
}
else
{
throw new Exception("action错误" + action);
}
}
}
_Toc389233403
_Toc389233456
_Toc389233509
_Toc389233562
_Toc389233615
_Toc389233668
_Toc389233721
_Toc389233774
_Toc389233827
_Toc389233880
_Toc389233933
_Toc389233986
_Toc389234039
_Toc389234240
密码修改功能
图32
public partial class password :
{
protected void Button1_Click(object sender, EventArgs e)
{
string password = ;
string password2 = ;
t_userTableAdapter adapter = new t_userTableAdapter();
string username = (Session["username"]);
var userrows = (username);
if (() > 0)
{
var user = ();
if ( != password)
{
("<script language=javascript>alert('原密码不正确,操作失败');='';</script>");
}
else
{
(password2, );
("<script language=javascript>alert('操作成功');='';</script>");
}
}
else
{
("<script language=javascript>alert('登录超时,请重新登录');='';</script>");
}
}
}
52
_Toc329875237
_Toc329875293
_Toc329875503
_Toc336702342
_Toc362251402
_Toc362252379
_Toc377126947
_Toc387325388
_Toc387925053
_Toc389233404
_Toc389233457
_Toc389233510
_Toc389233563
_Toc389233616
_Toc389233669
_Toc389233722
_Toc389233775
_Toc389233828
_Toc389233881
_Toc389233934
_Toc389233987
_Toc389234040
_Toc389234241
6系统的调试与测试
_测试概述
软件测试的目的
_Toc329875238
_Toc329875294
_Toc329875504
_Toc336702343
_Toc362251403
_Toc362252380
_Toc377126948
_Toc387325389
_Toc387925054
_Toc389233405
_Toc389233458
_Toc389233511
_Toc389233564
_Toc389233617
_Toc389233670
_Toc389233723
_Toc389233776
_Toc389233829
_Toc389233882
_Toc389233935
_Toc389233988
_Toc389234041
_Toc389234242
软件测试的目的
软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情,另一方面是确认软件以正确的方式来做了这个事件。
第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。
第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的
软件质量是由几个方面来衡量的:一、在正确的时间用正确的的方法把一个工作做正确。二、符合一些应用标准的要求,比如不同国家的用户不同的操作习惯和要求,项目工程中的可维护性、可测试性等要求。三、质量本身就是软件达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软件的高质量。四、质量也代表着它符合客户的需要。作为软件测试这个行业,最重要的一件事就是从客户的需求出发,从客户的角度去看产品,客户会怎么去使用这个产品,使用过程中会遇到什么样的问题。
软件测试的任务
测试环境
_Toc136303529
_Toc229250524
_Toc377126949
_Toc387325390
_Toc387925055
_Toc389233406
_Toc389233459
_Toc389233512
_Toc389233565
_Toc389233618
_Toc389233671
_Toc389233724
_Toc389233777
_Toc389233830
_Toc389233883
_Toc389233936
_Toc389233989
_Toc389234042
_Toc389234243
面向对象系统测试方案
根据系统测试目的并结合面向对象方法,我们给出了如下系统测试方案:
(1)尽早的、不断的进行系统测试。我们知道,错误发现的越早,改正它所付出的代价也就越小。由于错误的发生往往是不可避免的,因此我们的系统测试贯穿于整个开发过程中,而不是把系统测试仅仅看作是软件开发的一个独立阶段。
(2)设计测试用例时,给出测试的预期结果。一个测试用例由两部分组成:测试用的输入数据和该输入数据所期望的程序运行结果。这样测试时才能有一个判断标准,利用输入数据得出测试数据并和预测数据进行比较,看它们是否一致。
(3)我们在设计测试用例时,不仅有合法的输入测试用例,还有非法的输入测试用例。因为,在系统的实际使用过程中,由于各种原因,用户往往会使用一些非法的输入,比如按错了键或者使用了非法的命令等,所以,我们特别注意设计非法的输入测试用例来进行测试。
(4)在对系统修改完之后进行回溯测试。我们在修改系统的同时往往又会引入新的错误,所以在对程序修改完之后,用以前的用例进行回归测试。
_Toc324186825
_Toc329875241
_Toc329875297
_Toc329875507
_Toc336702346
_Toc362251406
_Toc362252383
_Toc377126950
_Toc387325391
_Toc387925056
_Toc389233407
_Toc389233460
_Toc389233513
_Toc389233566
_Toc389233619
_Toc389233672
_Toc389233725
_Toc389233778
_Toc389233831
_Toc389233884
_Toc389233937
_Toc389233990
_Toc389234043
_Toc389234244
结束语
踉踉跄跄地忙碌了两个月,我的毕业设计课题也终将告一段落。点击运行,也基本达到预期的效果,虚荣的成就感在没人的时候也总会冒上心头。但由于能力和时间的关系,总是觉得有很多不尽人意的地方,譬如功能不全、外观粗糙、底层代码的不合理……数不胜数。可是,我又会有点自恋式地安慰自己:做一件事情,不必过于在乎最终的结果,可贵的是过程中的收获。以此语言来安抚我尚没平复的心。
毕业设计,也许是我大学生涯交上的最后一个作业了。想籍次机会感谢四年以来给我帮助的所有老师、同学,你们的友谊是我人生的财富,是我生命中不可或缺的一部分。我的毕业指导老师付兵老师,虽然我们是在开始毕设时才认识,但他却能以一位长辈的风范来容谅我的无知和冲动,给我不厌其烦的指导。在此,特向他道声谢谢。
大学生活即将匆匆忙忙地过去,但我却能无悔地说:“我曾经来过。”大学四年,但它给我的影响却不能用时间来衡量,这四年以来,经历过的所有事,所有人,都将是我以后生活回味的一部分,是我为人处事的指南针。就要离开学校,走上工作的岗位了,这是我人生历程的又一个起点,在这里祝福大学里跟我风雨同舟的朋友们,一路走好,未来总会是绚烂缤纷。(蓦然回首)
_Toc324186826
_Toc329875242
_Toc329875298
_Toc329875508
_Toc336702347
_Toc362251407
_Toc362252384
_Toc377126951
_Toc387325392
_Toc387925057
_Toc389233408
_Toc389233461
_Toc389233514
_Toc389233567
_Toc389233620
_Toc389233673
_Toc389233726
_Toc389233779
_Toc389233832
_Toc389233885
_Toc389233938
_Toc389233991
_Toc389234044
_Toc389234245
致 谢
感谢我的导师付兵,他们严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;他们循循善诱的教导和不拘一格的思路给予我无尽的启迪。
感谢我的系里面的老师们,这片论文的每个编写细节和每个数据,都离不开你们的细心指导。而你们开朗的个性和宽容的态度,帮助我能够很快的融入我们这个设计中.
感谢我的室友们,从遥远的家来到这个陌生的城市里,是你们和我共同维系着彼此之间兄弟般的感情,维系着寝室那份家的融洽。四年了,仿佛就在昨天。四年里,我们没有红过脸,没有吵过嘴,没有发生上大学前所担心的任何不开心的事情。只是今后大家就难得再聚在一起吃每年元旦那顿饭了吧,没关系,各奔前程,大家珍重。但愿大家顺顺利利,也愿离开我们寝室的开开心心。我们在一起的日子,我会记一辈子的。
感谢我的爸爸妈妈,焉得谖草,言树之背,养育之恩,无以回报,你们永远健康快乐是我最大的心愿。
在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢
_Toc230433580
_Toc230710788
_Toc308982264
_Toc324186827
_Toc329875243
_Toc329875299
_Toc329875509
_Toc336702348
_Toc362251408
_Toc362252385
_Toc377126952
_Toc387325393
_Toc387925058
_Toc389233409
_Toc389233462
_Toc389233515
_Toc389233568
_Toc389233621
_Toc389233674
_Toc389233727
_Toc389233780
_Toc389233833
_Toc389233886
_Toc389233939
_Toc389233992
_Toc389234045
_Toc389234246
参考文献
[1] 白云龙.我国农产品电子商务模式初探[J].河北农业科学.(5):146-147,152.
[2] 盛革.农产品虚拟批发市场协同电子商务平台构建[J]. (395):189-193.
[3] 尹洁.我国农产品电子商务的发展战略分析[J].农村经济.:93-94.
[4] 吕洋波.Dreamweaver+ASP动态网站开发从入门到精通[M].清华大学出版社.2007年6月
[5] 孙瑶琴.农产品电子商务网站建设[J].电脑知识与技术.:4150-4151.
[6] 杨光.基于电子商务的农产品综合交易市场之构想[J].改革与开放.:100.
[7] 杨杨.发展我国电子商务农产品销售的对策[J].安徽农学通报.(17):194-195.
[8] 石旸.电子商务平台农产品电子结算系统的设计与实现[J].电子商务.:38.
[9] 谢茂华.农产品国内电子商务研究分析[J].科技市场经济.2011(1):42-44.
[10]席增雷,郑现伟农产品电子商务营销机理研究.安徽农业科学.(8):4277-4278.
[11] 孔祥春,张恒可.我国农产品电子商务运作机制研究.经济研究[J].:6-7.
[12] 郑军婷,邹海红.电子商务在绿色农产品营销中的应用[J].商场现代化.:72.
[13] 杨硕.构建鲜活农产品全程电子商务的探[J].农业网络信息.2010(11):97-101.
[14] 张冬青,张冬梅.农产品电子商务应用模式及技术实现研究[J].学术交流.:94-96.
[15] 关海玲,陈建成电子商务环境下农产品交易模式及发展研究[J].中国流通经济.2010(1):45-47.
_GoBack
目 录
任务书……………………………………………………………………………….Ⅰ
开题报告…………………………………………………………………………….Ⅱ
指导教师审查意见………………………………………………………………….Ⅲ
评阅教师评语……………………………………………………………………….Ⅳ
答辩会议记录 ………………………………………………………………………Ⅴ
中文摘要…………………………………………………………………………….Ⅵ
外文摘要…………………………………………………………………………….Ⅶ
1 引言 1
选题背景 1
目前农产品网上交易在国内外发展现状 1
农产品网上交易平台实现的意义和目的 2
传统农产品交易中存在的问题 3
2 系统设计方案 4
需求分析 4
总体功能模块 6
系统业务描述 10
程序流程图 11
3系统的开发环境及技术简介 12
开发工具 Microsoft Visual Studio 2008 12
数据库SQLserver 13
B/S体系结构 13
开发框架 14
开发语言C# 15
4数据库设计与实现 16
系统和数据库的配置 16
概念结构设计 17
数据库逻辑模型 18
数据库表的详细设计 20
数据库连接与实现 25
5农产品交易平台系统实现 26
用户登录 26
用户注册界面 27
网站主界面 29
产品搜索功能和销量排行功能 32
订单生成和订单处理功能实现 35
添加新产品分类 39
交易平台公告功能实现 43
密码修改功能 46
6系统的调试与测试 48
软件测试的目的 48
面向对象系统测试方案 48
结束语 49
致 谢 50
参考文献 51