基于.net合同管理系统的设计及实现毕业论文

基于.net合同管理系统的设计及实现毕业论文

ID:880598

大小:1.99 MB

页数:79页

时间:2017-09-22

上传者:^_^
基于.net合同管理系统的设计及实现毕业论文_第1页
基于.net合同管理系统的设计及实现毕业论文_第2页
基于.net合同管理系统的设计及实现毕业论文_第3页
基于.net合同管理系统的设计及实现毕业论文_第4页
基于.net合同管理系统的设计及实现毕业论文_第5页
资源描述:

《基于.net合同管理系统的设计及实现毕业论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

基于.NET合同管理系统的设计与实现目录摘要:1Abstract:2第1章绪论31.1选题背景31.2课题的研究现状31.3课题的主要研究内容41.4研究意义41.5系统运行环境5第2章系统开发平台与技术62.1系统开发平台62.1.1ASP.NET介绍62.1.2ASP.NET应用程序的文件系统布局62.1.3ASP.NET配置72.1.4ASP.NET的安全性72.2ADO.NET数据访问技术82.3VisualC#介绍92.4SQLServer2005介绍102.5调试环境-IIS5.0介绍12第3章系统设计143.1系统的需求分析143.1.1功能需求143.1.2性能需求143.2系统设计方案及其可行性分析153.2.1系统设计方案153.2.2系统设计方案可行性分析163.3数据库设计173.3.1数据库概念结构设计17 3.3.2数据的逻辑设计193.4权限设计203.5系统关键技术21第4章系统实现224.1系统登录页面224.2用户管理页面234.3信息管理模块274.3.1客户信息管理页面274.3.2产品信息管理页面314.4合同管理模块36第5章系统测试425.1系统测试方法425.2本系统测试过程42结束语47参考文献48致谢49附录50 基于.NET合同管理系统的设计与实现摘要:合同管理系统是现代企业软件管理系统的一个重要组成部分,而目前已有的合同管理系统中,部分存在着客户端操作复杂,数据库安全性不高的问题,给企业的管理工作造成了诸多不便和重复操作。为解决合同管理系统的上述问题,本课题基于模块化三层架构模型,利用ADO.NET数据库访问技术和数据存储模块保证应用程序访问数据库信息的安全性和及时性。同时,系统采用SQL查询技术极大地提高了数据查询效率。系统主要实现了批量查看合同、合同管理及客户资料管理等功能模块。测试结果表明该系统扩展性好,用户操作灵活,实现了系统要求的全部功能,简化了企业合同管理流程,提高了企业管理效率。同时,系统性能完全满足设计要求。关键词:合同管理系统;SQL数据库;ADO.NET;Web  DesignandImplementingofContactManagementSystemBasedon.NETAbstract:ContractManagementSystemisanimportancepartofthemanagementsystemofmodernbusinessenterprise.ButithassomeproblemslikeclientoperationincomplicatedanddatabaseinunhightSecurityinpartsofthecontactmanagementsystem.Theproblemsmakebusinessbanagementmoreinconvenientandmoreduplicateoperation.Thistopicturnsthethreelayersstructureaccordingtothemoldpiece,usedofthesafetythattheADO.NETdatabaseinterviewtechniqueanddatassaveanassuranceofmoldapplicationprocedureinterviewdatabaseinformationandintime.ThisarticleadoptstheWebtechniqueofAsp.net,togetherwiththeSQLdatabases,developsasetofcontractmanagementsystem.Actualizedcheckinglargenumberofcontract,thecontractmanagement,theownermanagementKeywords: ContractManagementSystem;SQLdatabase;ADO.NET;Web 第1章绪论1.1选题背景随着计算机的普及和计算机技术的发展,计算机已开始在人类的生活中扮演着越来越重要的角色。计算机正以其速度快,效率高,操作简单等优点,成为很多人和部门的工作离不开的助手,例如:金融,电信,计算机控制,计算机辅助制造等等。而无论是在哪个方面,计算机所做的工作都是负责对数据的采集,处理,输出。因此,我们需要一种能对数据进行各种操作的工具——数据库管理系统。在信息化程度越来越高的当今社会,随着签订合同数量的增多,合同的管理必然成为一种负担。“十五”期间,国家经贸委就提出了国有企业应实现信息化管理,而作为企业信息化管理之一的合同管理信息化近年来也得到了许多关注,取得了一些进展。当近的时代是“信息化浪潮”风起云涌的信息时代,计算机技术、现代通信技术、网络互联技术、数据库技术、信息发布技术、智能信息处理技术、信息安全技术都日臻成熟。信息化是中国与国际接轨、实现现代化的必由之路。当今网络应用越来越普及,合同管理向信息化、网络化方向发展。而企业在发展过程中合同档案管理资料的增加,工作人员劳动强度增大,档案资料的存储、查询等工作与办公高效率的要求矛盾日渐突出,这就需要一套行之有效的合同管理软件来替代手工作业。在这种时代大背景和企业自身发展需要的下,就有了一个现有价值和潜在价值都非常巨大的需求市场,这样基于ASP.NET的合同管理系统的应用前景将会非常广阔。企业的发展使得合同信息变得越来越复杂,同时也增加了管理上的困难。合同是企业经营管理基础工作的重要内容,通过提高合同管理水平,规范企业合同的签订和履行,能够有效地防范风险、优化管理、降低成本、提高效益。以信息化技术提高企业合同管理水平,是现代企业合同管理的必然趋势,尤其对大、中型企业具有重要意义。因此,我们将发挥计算机的庞大的存储空间,高性能的处理能力,高度可靠的数据安全,清晰的可视化数据等这些优势来辅助单位对合同进行管理,实现了计算机资源的合理利用,真正实现了减少劳动力提高劳动质量的目的。本课题的合同管理系统实现了企业合同管理的信息化,可对企业所有合同的相关信息进行有效管理。1.2课题的研究现状 由于我国企业管理信息化起步较晚,相应的信息化管理工作也相对滞后于企业规模的扩展。虽然目前我国的一些软件公司已经开发出了一些合同管理系统方面的软件,有基于C/S与B/S混合模式的、基于PHP网络化的等等,可以提供合同管理、建立、查询、修改等信息。当前国内外主要的技术是采用C/S模式,采用C/S模式的合同管理系统交互性好、执行速度快、有着很好安全性,但是这种模式下的系统之间的交流比较困难、比较封闭,用户界面不一,系统的升级、维护比较麻烦复杂,移植困难不便于接纳新技术,限制其扩展性。同时C/S模式也存在高昂的维护成本且投资大缺点,首先是首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。因此,本文拟在充分分析企业合同管理工作现状的前提下,结合企业合同管理的实际需要,应用先进的计算机技术和管理技术设计和开发针对于企事业单位的通用管理信息系统。1.1课题的主要研究内容本系统主要是实现现代企业合同信息化管理,它的基本步骤是先用SQLServer2005建立一个数据库,再结合ASP.NET技术、Web技术设计出整个的合同管理系统。本课题主要是针对合同要素、合同附件、合同结算明细、合同变更信息及合同执行情况等信息管理。系统要求能将合同基本信息管理。具有合同付款计划和合同到期提前提醒,设置访问权限。本合同管理系统可以分为四大模块:用户登陆模块、用户管理模块、信息管理模块、合同管理。通过用户登陆进行合同管理的录入、修改、删除等管理操作,还能进行用户权限的管理。主要完成的功能为:(1)用户登陆模块:用户登录的合法性检验和登录后用户(权限)数据的读取。(2)用户管理块:包含用户管理、权限管理、事物处理功能。(3)信息管理块:客户信息管理(合同资料录入、修改、删除)、产品信息管理。(4)合同管理模块:添加、修改、删除合同,浏览合同明细。1.2研究意义合同管理信息化的意义具体体现在以下几方面: (1)提高合同审查审批的节奏与效率。一方面大、中型企业合同业务量大,每天都有大量的合同业务,而且合同管理综合性很强,涉及合同立项、选商、审批、授权、签约、履行多个环节,需要各职能部门相互配合、各负其责、齐抓共管。另一方面,合同管理权限划分基于企业的授权经营,上下级单位之间经常发生合同的申报与审查审批。合同信息化利用信息网络实现远程办公,缩短了距离,可有效节约时间,同时,文本实现网络共享,避免文本传递失误,减少审查核对时间,提高工作效率。(2)节约管理成本,创造经济效益。实现网上管理合同,能大大减少上下级机关之间因合同业务的人员异地往来,大大降低差旅费用。同时,管理人员可以从大量的信息收集、文件制作、资料整理等事务性工作中解放出来,将力量投入到专业论证和分析等管理工作,将进一步优化人力成本,提高经济效益。(3)科学高效地管理合同信息数据,为企业管理提供支持信息数据,是企业的重要资源。通过网上动态管理合同,可利用信息化手段收集、整理各项合同管理信息。这些信息数据从合同角度反映出企业的经营管理情况,一方面按企业要求完成合同信息收集、披露等工作,另一方面,在评价企业经济运行状况、发现经营管理存在的问题、防范经营风险中,发挥较大作用。(4)增加合同管理的透明度,提高管理监督能力,防止不正之风。合同所约定的交易涉及企业物资、产品或技术,与企业资金的流出流入紧密关联,只有进行有效监督,才能防止不正之风与职务犯罪。合同管理信息化通过网上办公与信息流转,将提高监督管理行为的能力,利于反腐倡廉的源头控制,不仅能保护企业财产不受侵蚀,还能净化企业环境,树立良好风气。1.1系统运行环境基于ASP.NET技术的车辆管理系统采用VisualStudio2005与SQLServer数据库等工具,通过基于Web服务器访问纯Web页面,实现各项相关的功能。(1)软件运行环境:①VisualStudio2005开发环境;②SQLServer2005数据库;③WindowsXP和IIS5.0。(2)硬件运行环境:CPU2.4GHz,内存:2G 第2章系统开发平台与技术2.1系统开发平台2.1.1ASP.NET介绍本程序是基于ASP.NET系统平台开发的。ASP是MicrosoftActiveServerPages的简称,它是一种服务器端脚本环境,可用来创建交互式Web页并建立强大的Web应用程序。随着网络技术的飞速发展,网络应用系统的需求越来越大,ASP.NET2.0技术的推出简化了网络开发人员的工作,提高了网络人员的工作效率。可以表明ASP是一种基于服务器端的脚本环境,那就明白ASP为什么需要IIS支持了,因为IIS即为常用的一类Web服务器;那也就明白为什么要学脚本语言了,因为ASP提供的是一种脚本环境。ASP只是一种环境,而非一种语言。如果真要形象化地说是ASP是网络编程语言的话,那也是属于一个html+脚本+ASP提供的内置对象及组件的功能强大的混合语言。ASP.NET2.0使用VisualStudio2005开发环境,该环境能够与Microsoft操作系统平台和数据库系统平台高度融合。当前,人们在网上看新闻、网上购物、网上交流。很多企业也将他们的业务从网上开展起来。这些应用和服务依赖于网站的建设,即Web应用系统的开发。单纯的HTML(HyperTextMarkupLanguage,超文本标记语)已经不能满足这些应用,于是人们开发出了好几种Web开发技术,包括CGI、PHP、JSP和ASP,基本满足了这些方面的需求。但这些传统的Web开发技术开发周期长,每一步都得靠开发人员编写实现。在这种形势下,.NETFramework应运而生,ASP.NET则以他的诸多特性而深受各Web程序员的喜爱。ASP.NET是一个用于Web开发的全新框架,其中包含了许多新的特性。它使用的是成熟的编程语言,如VB.NET和C#;ASP.NET使用编译后的语言,从而提升性能和伸缩性;ASP.NET提供了更易于编写、结构更清晰的代码,这些代码很容易进行再利用和共享;ASP.NET使用Web表单,使开发更直观,利用面向对象的技术,促进了组件的再利用。另外,ASP.NET中还包括页面事件、Web控件、缓冲技术,以及服务器控件和对数据绑定的改进。供ASP.NET使用的类库,以及在.NET框架中允许通过外部调用函数,为程序员提供了更多新的开发机会。2.1.2ASP.NET应用程序的文件系统布局ASP.NET可以用来承载多个Web应用程序,其中每个应用程序由Web 站点内的一个唯一的URL前缀来标识。可以总结为以下几点:(1)ASP.NET框架应用程序由唯一的URL标识并存在于Web服务器的文件系统中。(2)ASP.NET可以使用共享程序集(驻留在全局缓存中)和应用程序特定的程序集(驻留在应用程序的虚拟根目录下的bin目录中)。(3)ASP.NET框架应用程序在应用程序域(AppDomain)的上下文中运行,此域提供隔离并且强制安全限制。(4)可以通过使用“classname,assemblyname”动态引用类。(5)ASP.NET使用程序集文件的影像副本以避免锁定,并且监视这些文件以便立即获得更新。2.1.1ASP.NET配置对任何Web应用程序服务器的主要要求是具有丰富而灵活的配置系统——使开发人员能够轻松地将设置与可安装的应用程序关联(无须将值“拷”入代码)并使管理员能够在部署后轻松地自定义这些值的配置系统。ASP.NET配置具有以下优点:(1)ASP.NET允许将配置设置与静态内容、动态页和业务对象一起存储在单个应用程序目录层次结构中。用户或管理员只需复制单个目录树便可以在计算机上设置ASP.NET框架应用程序。(2)配置数据以既具有可读性又具有可写性的纯文本文件的形式存储。管理员和开发人员可以使用任何标准的文本编辑器、XML分析器或脚本语言来解释和更新配置设置。(3)ASP.NET提供了可扩展的配置结构,使第三方开发人员能够存储他们自己的配置设置,为他们自己的配置设置定义持久格式,智能化地参与他们的处理,以及控制用来最终公开这些设置的结果对象模型。(4)对ASP.NET配置文件的更改由系统自动检测并在不需要任何用户参与的情况下应用(即管理员不需要重新启动Web服务器或计算机即可使更改生效)。(5)配置节可通过使用标记和allowOverride属性锁定。2.1.2ASP.NET的安全性在任何类型的应用系统中,安全性总是一个不容忽视的问题。在ASP.NET中,通过好多策略,如用户身份验证、授权、数据加密等许多方法,来提高应用程序安全性。(1)ASP.NET的潜在威胁: 不管对于存在于互联网上的服务器,或者应用系统程序。总会有人不断地在探测,是否存在安全漏洞。因此,网络并没有绝对的安全,应用程序也是一样。技术上的安全,只是安全的一部分。另外一个重要部分则是安全意识。即使系统具有许多安全性保护措施,但在意识中,千万不要以为这是绝对的安全。要对系统的事件日志、重复登录尝试或者对Web服务器的过多请求,进行时刻监视和分析。(2)ASP.NET的潜在威胁主要有以下几个方面:①cookie欺骗。“cookie欺骗”是指以未经授权的方式模拟用户或进程。简单地讲,cookie欺骗可以是指输入其他用户的凭据。恶意使用还可能更改cookie的内容,来假扮合法用户对系统进行访问。②篡改。“篡改”是指未经授权的情况下更改或删除资源。例如,恶意用户进入站点并更改文件,从而使网页变得面目全非。进行篡改的间接方法是利用脚本的漏洞。恶意用户设法获取要执行的代码(脚本),方法是将其屏蔽为页面中的用户输入或屏蔽为链接。③否认。“否认”是指进行事务处理时所涉及的主体,在作出事务处理的事实后,无法对其行为进行证明。在Web应用程序中,这可以是模拟其他用户的凭据。可以使用严格的身份验证来防止否认。另外,使用Windows的日志记录功能,保存服务器上任何活动的审核追踪。④信息泄露。“信息泄露”仅指偷窃或泄漏应该保密的信息。一个典型的示例是偷窃密码,但信息泄露可以涉及对服务器上的任何文件或资源的访问。⑤拒绝服务。“拒绝服务”攻击是指故意导致应用程序的可用性降低。典型的示例是:让Web应用程序负载过度,使其无法为普通用户服务。2.1ADO.NET数据访问技术ADO.NET是对MicrosoftActiveXDataObjects(ADO)一个跨时代的改进,它提供了平台互用性和可伸缩的数据访问。尤其在ADO.NET2.0中,增加了很多新特性,使得数据访问技术被提升到一个新的层次。ADO.NET是.NETFramework中的一套类库,使用它,开发者在应用程序中使用数据时,就变得更加方便。微软公司收集了过去漫长时期中最佳数据连接的实践操作,并且编写代码实现这些实践。这些代码被封装进了一些对象中,以便其他开发者可以方便地使用。 ADO.NET中封装了一些代码,这些代码都是标准化的,并且对现有数据库的一些复杂情况已经进行了处理,所以当开发人员想进行数据操作时,只需要编写少量的代码就能实现。与ASP.NET一样,ADO.NET也不是一种语言。它是许多对象(类)的集合,在对象里边已经封装好了很多代码。可以通过自己编写代码来对这些封装的代码进行调用。与其他任何架构一样,ADO.NET也是由一些重要部分组成的。.NET类可以通过命名空间组织到一起。所有与ADO.NET相关功能的类,都位于System.Data命名空间下。一个较好的消息就是,其他程序开发人员也可以编写不属于该命名空间但又实现了访问数据库功能的类库。ADO.NET对象可以分成两个基本类别:连接的和非连接的。在ADO.NET中的各种类都可以分成连接的和非连接的。但有一个对象是例外的,是唯一的例外,它充当着连接的和非连接之间的关卡,这就是DataAdapter对象。连接数据库进行数据操作并得到相应记录:在ASP.NET中,对数据的访问主要是通过ADO.NET对象来实现的。对ASP.NET访问处理过程主要分为两个步骤:建立对数据库的连接和通过连接进行数据操作得到记录数据集。ADO.NET是.NET平台中的一种新的数据访问技术,它在原有的ADO基础上引入了一些重大的变化和革新,支持对绝大部分数据源进行高效访问,成为应用程序和数据库之间的重要桥梁。ADO.NET具有断开式数据结构,与XML紧密集成,提供对主要关系数据库的数据源以及XML数据源的一致访问。数据访问程序可以使用ADO.NET来连接到数据源,并检索和操作数据。ADO.NET提供功能强大的DataSet组件,它是一种关系数据结构,可以使用XML进行读取、写入或序列化。并且,在ADO.NET中,可使用新的.NETFramework数据提供程序来访问数据源。这些数据提供程序可以满足各种开发要求,包括:SQLServer.NETFramework数据提供程序、OLEDB.NETFramework数据提供程序、ODBC.NETFramework数据提供程序、Oracle.NETFramework数据提供程序。通过这些.NETFramework数据提供程序,ADO.NET可以访问目前可用的大多数数据库系统。2.1VisualC#介绍 C#就本身只是一种语言,尽管它是用于生成面向.NET环境的代码,但它本身不是.NET的一部分。一些特性由.NET支持,但C#不支持。而另一些特性C#支持,.NET却不支持(例如运算符重载)。实际上,C#为希望建立健全的n层客户机/服务器应用程序的公司提供了一个绝佳的机会,它与ADO.NET合并后,就可以快速而经常地访问数据库了,并且一旦为新工程建立了数据库模式,C#就会为执行一层数据访问对象提供一个极好的媒介,每个对象都能提供对一不同的数据库表的插入、更新和删除访问。C#为组件之间的通信封装了杂乱的信息,让开发人员的注意力集中在把数据访问对象组合在一起,在方法中精确地强制执行公司的业务规则。而且使用属性,C#业务对象可以配备方法级的安全检查、对象池和由COM+服务提供的JIT活动。并且,.NET附带的实用程序允许新的.NET业务对象与原来的COM组件交互。总体来说,C#的特点表现在以下的几个方面:(1)与Web的紧密结合。C#程序能方便与Web程序进行集成。利用ASP.NET的强大功能,C#能与Web标准,如HTML和XML相结合。C#还能方便地开发Web服务,紧密地结合SOAP(SimpleObjectAccessProtocol),使得C#开发大规模深层次的分布式应用成为可能。(2)安全稳定。C#特有的机制是其安全性的保障,同时它去除了C++中易造成错误的指针,增加了自动内存管理等措施,保证了COM序运行的可靠性。内存管理中的垃圾收集机制减轻了开发人员对内存管理的负担,.NET平台提供的垃圾收集器(GarbageCollection,GC)将负责资源的释放与对象撤销时的内存清理工作。同时,变量的初始化、类型检查、溢出检查等功能也充分保证了C#程序的安全稳定。(3)具有丰富的类库C#提供了大量的类,以满足网络化、多线程、面向对象系统的需要。①能用相应的类来实现从低级网络操作到高层网络应用。②语言包,提供的支持包括字符串处理、多线程处理、异常处理、数学函数处理等,可以用它简单地实现C#程序的运行平台。③实用程序包,提供的支持包括哈希表、堆栈、可变数组、时间和日期等。④输入输出包,用统一的“流”模型来实现所有格式的输入与输出,包括文件系统、网络、输入与输出设备等。⑤图形用户界面的功能强大,不仅能实现Windows窗口应用程序,而且可以实现Web窗体应用。(4)灵活性和兼容性。在简化C++语法的同时,C#并没有推动灵活性。C#允许与C风格的需要传递指针型参数的应用程序接口进行交互操作,动态链接库的任何入口点都可以在程序中进行访问。C#遵守.NET的CLS,从而保证了C#组件与其他语言(如VisualBasic,VisualC++,Jscript,J#等)的组件间的互操作性。2.1SQLServer2005介绍MicrosoftSQLServer2005是用于大规模联机事务处理(OLTP)、 数据仓库和电子商务应用的数据库平台;也是用于数据集成、分析和报表解决方案的商业智能平台。SQLServer2005引入了一些“Studio”帮助实现开发和管理任务:SQLServerManagementStudio和BusinessIntelligenceDevelopmentStudio。在ManagementStudio中,可以开发和管理SQLServer数据库引擎与通知解决方案,管理已部署的AnalysisServices解决方案,管理和运行IntegrationServices包,以及管理报表服务器和ReportingServices报表与报表模型。在BIDevelopmentStudio中,可以使用以下项目来开发商业智能解决方案:使用AnalysisServices项目开发多维数据集、维度和挖掘结构;使用ReportingServices项目创建报表;使用报表模型项目定义报表的模型;使用IntegrationServices项目创建包。在studio中,SQLServer2005提供了设计、开发、部署和管理关系数据库、分析对象、数据转换包、复制拓扑、报表服务器和报表以及通知服务器所需的图形工具。此外,SQLServer2005包含命令提示实用工具,可以通过命令提示符执行管理任务。SQLServer2005提供了多种用于提交有关产品和文档反馈的方式,还提供了用于自动向Microsoft发送错误报告和功能使用情况数据的方式。(1)数据库引擎。数据库引擎是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内要求极高而且需要处理大量数据的应用需要。使用数据库引擎创建用于联机事务处理或联机分析处理数据的关系数据库。这包括创建用于存储数据的表和用于查看、管理和保护数据安全的数据库对象(如索引、视图和存储过程)。(2)AnalysisServices。AnalysisServices是一种核心服务,可支持对业务数据的快速分析,以及为商业智能应用程序提供联机分析处理(OLAP)和数据挖掘功能。使用AnalysisServices,可以设计、创建和管理包含来自多个数据源的详细数据和聚合数据的多维结构,其中这些数据源(如关系数据库)都存在于内置计算支持的单个统一逻辑模型中。AnalysisServices为根据统一的数据模型构建的大量数据提供快速、直观、由上至下的分析,这样可以采用多种语言和货币向用户提供数据。AnalysisServices使用数据仓库、数据集市、生产数据库和操作数据存储区,以支持历史数据和实时数据分析。(3)IntegrationServices。IntegrationServices是用于生成企业级数据集成和数据转换解决方案的平台。使用IntegrationServices可解决复杂的业务问题,方法是复制或下载文件,发送电子邮件以响应事件,更新数据仓库,清除和挖掘数据以及管理SQLServer对象和数据。这些包可以独立使用,也可以与其他包一起使用以满足复杂的业务需求。IntegrationServices可以提取和转换来自多种源(如XML 数据文件、平面文件和关系数据源)的数据,然后将这些数据加载到一个或多个目标。(4)复制。复制是一组技术,用于在数据库间复制和分发数据和数据库对象,然后在数据库间进行同步操作以维持一致性。使用复制可以将数据通过局域网、广域网、拨号连接、无线连接和Internet分发到不同位置以及分发给远程用户或移动用户。SQLServer提供以下三种功能各不相同的复制类型:事务复制、合并复制和快照复制。(5)ReportingServices。使用NotificationServices平台,可以开发功能齐全的通知应用程序。订阅表达了订阅方在特定信息(称为事件)方面的兴趣,可以根据事件的到达或计划对其进行评估。事件数据本身可以源自数据库内部、其他数据库或外部源。通知是事件和订阅匹配的结果,在发送给订阅方之前,可以采用各种格式。(6)NotificationServices。使用全文搜索可以同时在多个表的多个字段中搜索基于字符的纯文本数据。对大量非结构化的文本数据进行查询时,使用全文搜索获得的性能优势会得到充分的表现。例如,对数百万行文本数据执行的Transact-SQLLIKE查询可能需要花费几分钟时间才能返回结果;但对同样的数据,全文查询只需要几秒或更少的时间,具体取决于返回的行数。可以对存储在char、varchar或nvarchar列中的数据或存储在varbinary(max)或image列中的格式化二进制数据(如MicrosoftWord文档)创建全文搜索。(7)全文搜索。使用全文搜索可以同时在多个表的多个字段中搜索基于字符的纯文本数据。对大量非结构化的文本数据进行查询时,使用全文搜索获得的性能优势会得到充分的表现。例如,对数百万行文本数据执行的Transact-SQLLIKE查询可能需要花费几分钟时间才能返回结果;但对同样的数据,全文查询只需要几秒或更少的时间,具体取决于返回的行数。可以对存储在char、varchar或nvarchar列中的数据或存储在varbinary(max)或image列中的格式化二进制数据(如MicrosoftWord文档)创建全文搜索。(8)ServiceBroker。使用ServiceBroker的应用程序开发人员无需编写复杂的内部通信和消息,即可跨多个数据库分发数据工作负荷。由于ServiceBroker处理会话上下文中的通信路径,所以降低了开发和测试工作。同时还提高性能。例如,支持网站的前端数据库可以记录信息并将处理密集型任务发送到后端数据库以进行排队。ServiceBroker确保在事务上下文中管理所有任务以确保可靠性和技术一致性。2.1调试环境-IIS5.0介绍MicrosoftWindowsServer2005家族中的Internet信息服务(IIS)提供了可用于Intranet/Internet上的集成Web 服务器能力,这种服务器具有可靠性、可伸缩性、安全性以及可管理性的特点。可以使用IIS5.0为动态网络应用程序创建功能强大的通讯平台。任何规模的组织都可以使用IIS主持和管理Internet或Intranet上的网页及文件传输协议(FTP)站点,并使用网络新闻传输协议(NNTP)和简单邮件传输协议(SMTP)路由新闻或邮件。IIS5.0充分利用了最新的Web标准(如ASP.NET、可扩展标记语言(XML)和简单对象访问协议(SOAP))来开发、实施和管理Web应用程序。IIS5.0提供了一些新功能,用来实现高性能、可靠性、可伸缩性和安全性地管理单个IIS服务器或多个服务器上可能存在的上千个网站。(1)可靠性。IIS5.0使用一种新的处理请求体系结构和隔离应用程序环境,使得单个Web应用程序可以在一个自包含的工作进程中发挥作用。所谓隔离应用程序环境是指IIS5.0的核心服务程序和Internet服务应用编程接口应用程序(ISAPI程序),这两者的运行环境是互相隔离的。即当应用程序失败时,只有对应的ISAPI应用程序的工作进程受到影响,可防止Web服务主控的所有服务也失败。同时,这种环境可以防止一个应用程序或网站停止另一个应用程序或网站,并且可缩短管理员为了纠正应用程序问题而重新启动服务所需的时间。这种新环境还提供了具有前瞻性的应用程序运行状况监控功能。(2)可伸缩性。IIS5.0引进了一种新的内核模式驱动程序,用于HTTP解析和高速缓存,专门对增加Web服务器的吞吐量和多处理器计算机的可伸缩性进行了优化,从而大大增加了一个IIS5.0服务器可以主持的站点数目和并发活动工作进程的数目。通过对工作进程配置启动和关闭时间限制,由于服务可以向活动站点分配资源,而不是将资源浪费在空闲请求上,从而进一步增强了IIS的可伸缩性。(3)安全性。IIS5.0提供了多种安全功能和技术,可以使用这些功能和技术确保网站及FTP站点内容的完整性,以及由这些站点传输的数据的完整性。IIS5.0的安全功能包括下列与安全有关的任务:身份验证、访问控制、加密、证书和审核。(4)可管理性。为了满足多样化的客户需求,IIS提供了多种控制和管理工具。作为管理员,可以用IIS管理器、管理脚本或直接编辑IIS纯文本配置文件来配置IIS5.0服务器。还可以远程管理IIS服务器和站点。IIS5.0包括一个纯文本.xml配置数据库配置文件,可以手动或通过某些程序编辑该文件。这个配置数据库是大多数IIS配置值的储备库。配置数据库二次工程已经大大缩短了服务器启动和关闭的时间,并增强了配置数据库的整体性能和可使用性。 第3章系统设计3.1系统的需求分析需求分析的基本任务是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、具体的要求。要实现一个软件系统,首先应该进行需求分析,这样才能令设计出的软件满足用户的各项功能,下面就合同管理系统的设计从功能需求和性能需求进行需求分析。3.1.1功能需求本企业合同管理系统大致包括:用户管理、信息管理、合同管理等三个功能。(1)用户管理。用户管理模块负责管理使用本系统的用户信息。主要功能包括添加、删除、修改和浏览用户信息。每个用户有不同的用户名,超级管理员添加新用户后,新用户即可登录此系统。(2)信息管理。信息管理模块负责管理公司所有客户信息。主要功能包括添加、删除、修改和浏览信息的。不同权限的用户所做的操作不同,例如对客户信息的添加、修改等只有超级管理员和管理员才有权限。其它用户只有浏览的权限。客户信息子模块是合同管理模块的基础,只有在客户信息模块中添加客户信息,才能签署合同。(3)合同管理。合同管理模块负责合同管理,主要功能包括添加、修改、浏览和删除合同。只有超级管理员和管理员才有此权限。此模块中需要记录合同的签署、执行和完成状态。3.1.2性能需求对于本合同管理系统来说,可扩展性,安全性,可管理性是几个很关键的因素。(1)可扩展性。可扩展性是指系统能保证可持续增长以满足用户需求和合同复杂性要求。Web系统为动态变化的模型:它们通常一开始很小,但随着需求的增长而呈指数级增长。这种增长非常迅速,不仅表现在支持的用户的数量上,而且表现在提供的用户服务的复杂性和集成性方面。(2)可靠性。服务质量的一个重要方面是能够在期望的响应时间内访问信息。对需要通过Internet的应用程序或信息的单位用户来说;还意味着必须在用户期望的时间内为用户提供其需要的信息。试想一个同时有很多用户访问的管理系统,一旦服务器发生阻塞或者崩溃,会带来难以预测的麻烦。(3)安全性。 安全性是指系统能够保护数据或基础结构避免受恶意攻击或者盗用。安全性是通过为信息的机密性,完整性和可靠性提供充分的保护来预防风险,保障系统安全,是任何系统成功的基本要素。(4)可管理性。可管理性是指可以很方便地对系统进行管理,确保系统的正常运行管理和运作,涉及以下几个因素:维护系统服务及其服务正常工作所需的基础结构,工具以及管理员和技术人员,合同管理系统的主机是在单位内部机房中。3.1系统设计方案及其可行性分析3.2.1系统设计方案系统设计包括系统架构设计、业务流程设计、功能设计等内容。(1)系统架构设计系统整体架构设计如图3.1所示,采用模块化的三层架构开发方式。数据库业务处理用户界面层图3.1总体架构设计用户界面层:操作界面,实现人和后台系统之间对话;业务处理层:后台系统,处理用户需要各种操作,与数据库进行联系,从数据库中调出用户需要的数据;数据库:存放各项数据。(2)业务流程设计合同管理过程中的各项业务处理流程如图3.2所示。合同管理过程中的各项业务处理流程如图3.2所示。其中有直线连接的说明数据信息之间有主键/外键或其它方式的关联关系。在用户输入登录账号和密码后,系统会进行身份验证,如果用户输入的账号或密码不合法,系统提示登录失败并返回登录界面,如何身份合法,系统提示登陆成功并再次进行那个验证用户身份是否为管理员,是的话该用户就拥有用户管理、查询合同、合同管理、权限设置的操作权限,如果该用户不是管理员则该用户只有用户管理和查询合同的操作权限。 系统登录验证用户登录失败验证失败登录成功是否管理员合同管理是否用户管理查询合同权限设置图3.2业务处理流程图(3)功能设计系统分为用户登陆模块、用户管理模块、信息管理模块、合同管理模块这四大模块:①用户登陆模块:用户登录的合法性检验和登录后用户(权限)数据的读取。②用户管理块:包含用户管理、权限管理、事物处理功能。③信息管理块:客户信息管理(合同资料录入、修改、删除)、产品信息管理。④合同管理模块:添加、修改、删除合同,浏览合同明细。3.2.1系统设计方案可行性分析随着网上交易的日渐频繁,贸易往来的日渐增加,对各个企业的管理也带来了新的难题,合同是每个商业贸易活动中必不可少的组成部分,企业必须对自己的各项贸易活动的合同进行妥善管理,才能使企业经营更加合理。而合同管理系统的出现打破了传统合同管理的模式,它凭借合同信息存储量大,管理安全性高,使用简便等优点,已成为各大中型企业进行合同管理的首选。随着我国经济的不断发展,贸易活动的日益频繁,合同管理系统必将在未来的企业 运营中发挥更大的作用。“合同管理系统”的设计采用当今最为流行的网络编程语言之一的ASP制作,数据库采用SQLServer2005,提高了数据的存储安全性,另外采用IIS服务器加快了系统的整体访问速度,系统整体框架采用B/S结构,利于和用户之间的交互,“合同管理系统”的功能设计基本达到了现代企业对合同管理实际应用的需要。基于ASP.NET技术的合同理系统的实现技术有多种, 本系统主要对两种方案进行分析:一种是可以采用传统的客户机/服务器(C/S)型的MIS型架构,即把整个系统数据库的信息放在远程的服务器上,在客户机上安装登陆系统的客户端程序和数据库客户机配置;另外一种系统采用Web技术实现。Web技术超越了传统的“客户机/服务器”两层结构,采用了三层体系结构:用户界面层/业务处理层/数据库层。首先,若采用传统的客户机/服务器(C/S)型的MIS型架构,每次查询、修改合同等信息时要对机器进行安装、配置,这样一来工作比较烦琐;而且登陆程序放在客户机上,安全性也受到一定影响。采用Web技术实现,Web技术超越了传统的“客户机/服务器”两层结构,采用了三层体系结构:用户界面层/业务处理层/数据库层。因此Web结构有着更好的安全性。在用户机上不需要安装任何应用程序,应用程序可以安装在业务处理层所在的计算机上,合同等各个信息存放在数据库服务器上(事务层和数据库可以是同一台机器)。这样不仅能够很好的节省成本还能保证系统的安全性和稳定性。其次,若采用C/S结构来架设系统,当有很多人来访问时可能使客户机承受不了过多的负荷而使系统出现崩溃的情况,若采用三层结构就能很好的解决这样的问题了,采用Web服务器,app(应用)服务器层和数据库层。Web服务器层用来接受数据,在这层数据传给应用层,在本系统中应用层是最重要的,因为数据的处理都在这层来进行。为了保证系统的稳定行,应采用多台Web服务器和多台应用服务器,这样就可以达到负载均衡的状态,对于数据库来说采用SQLserver。最后,此系统是一个动态的,所以采用ASP.NET来进行开发。通过ASP.NET可以开发前台和后台的应用和管理程序。综合以上论述,本系统拟采用的技术方案是可行的。3.1数据库设计3.3.1数据库概念结构设计设计好数据项和数据结构后,就可以设计满足需求的各种实体及相互关系,再用实体——关系图,即E-R图将这些内容表达出来,为后面的逻辑结构设计打下基础。本系统根据上面的设计规划出的实体包括用户信息实体、客户信息实体、产品信息实体、合同信息实体、合同明细实体。 用户信息实体图:用户信息用户编号用户类别用户姓名密码………………图3.3用户信息实体图客户信息实体图:客户信息客户编号名称负责人联系方式………………图3.4客户信息实体图产品信息实体:产品信息产品编号名称特征图3.5产品信息实体图 合同信息实体图:合同信息合同编号客户编号负责人联系方式………………图3.6合同信息实体图合同明细实体:合同明细合同编号客户编号订货数量单价………………图3.7合同明细实体图3.3.1数据的逻辑设计合同管理系统数据库包括4张表:用户信息表(Users)、客户基本信息表(Customer)、合同信息表(Contract)、合同明细表(Contract_datail)(1)用户信息表(Users)、用户信息表(Users)用于存放合同管理系统中所有参与人员的信息。表3.1用户信息表字段名称数据类型长度字段说明User_idchar10表示用户名,设为主键User_passwordchar10记录用户登录本系统时的用户密码User_namechar50记录用户名称User_powerint4记录用户的类型,0-管理员,1-合同管理员,2-来访用户(2)客户基本信息表(Customer)客户基本信息表(Customer)用于存放客户信息。 表3.2客户信息表字段名称数据类型长度字段说明Customer_idchar10记录客户编号,设为主键Customer_namechar10记录客户姓名Customer_chargechar10记录负责人Customer_introducevarchar50记录对客户的描述(3)合同信息表(Contract)系统构建合同信息表(Contract)用来存储公司所有合同信息。表3.3合同信息表字段名称数据类型长度字段说明Contract_idchar10记录合同编号,设为主键Customer_idchar10记录客户编号Contract_stateint4记录合同执行状态Contract_startvarchar50记录合同签署日期Contract_senddatetime8记录合同执行日期Contract_finishdatetime8记录合同完成日期Contract_personchar10记录合同的负责人Contract_pricemoney8记录总金额(4)合同明细表(Contract_datail)在这个系统中,只针对一份合同订购一种产品的最简单的情况作了设计,本系统本系统另外设计了合同明细表(Contract_datail),这张表主要是合同中有关产品的订购信息。在实际情况中,有可能一个合同会订购多种产品,为了今后扩展,系统将合同中相关的内容拿出来单独设计成为一张表,在扩展时,只需要增加一个自动编号的字段将其设计成主键即可。本系统设计的合同明细表,用于存放合同具体信息。表3.4合同明细表字段名称数据类型长度字段说明Cuontract_idchar10记录合同号,设为主键Product_idchar10记录产品号Product_bookint4记录订货数量Product_sendint4记录已发货数量Product_pricemoney8记录单价3.4权限设计为了简化设计,本系统的权限管理只做以下简单的控制和分配:超级管理员。超级管理员是系统中最高管理员权限的账号,负责合同管理系统的管理维护,内容包括用户账号的维护、权限维护等一切活动。管理员。管理员权限类似超级管理员,系统可以设置多个管理员。管理员账号可以与其他类型账号角色重叠。管理员账号的授权必须由超级管理员或管理员授权。 一般用户。凡是非管理员以外的其他用户角色都属于一般用户,一般用户只允许览合同。3.5系统关键技术本系统是基于Web应用的,集成数据库信息和Web,可以为远程用户提供执行动态的数据库查询以及运行在线事务处理应用程序的能力。这就对数据库的响应能力、数据库存储能力等要求就比较高。(1)使用DataSourceID控件访问远程SQL数据库该控件可以结合数据绑定控件,通过编程的方式,来实现数据自动绑定和显示。在数据源控件中,对一些数据访问、数据存储和对数据所执行的一些操作代码,都进行了封装。使用数据绑定控件的DataSourceID属性,可以设置其与相应的数据源控件进行关联。(2)数据库存储过程使用存储过程可以优化系统,并且提高效率,因此构建完数据库的表结构后,就可以创建表中信息选择、添加、更新以及删除的相关存储过程。 第4章系统实现4.1系统登录页面系统登录页面如图4.1所示:图4.1系统登录界面登陆页面使用了TextBox控件、Button控件和Label控件。页面具有自动导航的功能,不同用户登录,根据其不同的身份,将进入不同的系统功能页。用户身份验证通过后,系统利用Session变量记录其用户身份,伴随用户对系统进行操作的整个运行周期。功能实现代码如下所示:publicpartialclass_Default:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){}protectedvoidBtn_login_Click(objectsender,EventArgse){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;SqlConnectionmyconn=newSqlConnection(settings); //创建数据库连接myconn.Open();//打开数据库连接stringstrsql="select*fromuserswhereUser_id='"+Tbx_id.Text+"'andUser_password='"+Tbx_pwd.Text+"'";SqlCommandcm=newSqlCommand(strsql,myconn);SqlDataReaderdr=cm.ExecuteReader();if(dr.Read()){Session["User_power"]=dr["User_power"];//判断用户身份}else{Lbl_note.Text="登录失败,请检查输入!";}}}4.1用户管理页面(1)页面介绍用户管理页面是管理员进行用户登录后是首先进入的页面,主要负责用户信息的浏览。单击“添加新用户”链接,可以实现新用户添加,如图4.3所示用户管理页面如图4.2所示:图4.2用户管理界面 图4.3添加新用户页面单击“编辑”链接,可以实现该用户信息的修改,如图4.4所示。编辑后,点击更新链接可以实现对该用户信息的更改。单击用户对应的“删除”链接可以实现该用户的删除操作。只有具有超级管理原身份的用户,即用户类型为0的用户,才能进入用户管理页面。其他用户进入该页面会显示如图4.5所示结果。图4.4编辑用户信息界面图4.5错误信息提示页面 (2)界面设计用户管理页面主要使用了DataGrid控件、Button控件和Label控件,各控件属性如表4.1所示。表4.1用户管理界面控件属性控件ID属性ButtonBtn_exitOnClick=”Btn_exit_Click”LabelLbl_note默认DataGridDgd_user(3)主要代码:publicpartialclassusers:System.Web.UI.Page{SqlConnectioncn;protectedvoidPage_Load(objectsender,System.EventArgse){//判断用户是否为合法用户}catch{Response.Write("您不是合法用户,请登入后再操作,返回");Response.End();}publicvoidBindGrid()//与创建数据库建立连接,输出数据库的内容{stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;SqlConnectioncn=newSqlConnection(settings);//创建数据库连接SqlDataAdapterda=newSqlDataAdapter("select*fromusers",cn);DataSetds=newDataSet();da.Fill(ds);Dgd_user.DataSource=ds; Dgd_user.DataBind();}publicvoidDataGrid_update(objectsender,DataGridCommandEventArgse)//编辑数据库中的数据{stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;SqlConnectioncn=newSqlConnection(settings);SqlCommandcm=newSqlCommand("update_users_1",cn);cm.CommandType=CommandType.StoredProcedure;cm.Connection.Open();try{cm.ExecuteNonQuery();Lbl_note.Text="编辑成功";Dgd_user.EditItemIndex=-1;}catch(SqlException){Lbl_note.Text="编辑失败";Lbl_note.Style["color"]="red";}cm.Connection.Close();BindGrid();}publicvoidDataGrid_delete(objectsender,DataGridCommandEventArgse){if(Session["User_power"].ToString()=="0"){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]); settings=SqlDataSource1.ConnectionString;SqlConnectioncn=newSqlConnection(settings);//创建数据库连接stringstrsql="deletefromuserswhereUserID=@userid";SqlCommandcm=newSqlCommand(strsql,cn);cm.Parameters.Add(newSqlParameter("@userid",SqlDbType.Char,10));cm.Parameters["@userid"].Value=Dgd_user.DataKeys[(int)e.Item.ItemIndex];cm.Connection.Open();try{cm.ExecuteNonQuery();Lbl_note.Text="删除成功";}catch(SqlException){Lbl_note.Text="删除失败";Lbl_note.Style["color"]="red";}cm.Connection.Close();BindGrid();}}}4.1信息管理模块为了方便合同管理,提高合同管理的效率,在合同管理的基础上增设了客户信息管理和产品信息管理两个页面。4.3.1客户信息管理页面客户管理页面负责客户信息的管理和维护。一般用户登录进入的首个页面便是客户管理页面,如图4.6所示。 图4.6客户管理页面管理员可以再此界面进行那个管理进行“添加新客户”和“编辑”以及“删除”操作。图4.7添加新客户界面图4.8编辑客户信息界面 客户管理页面使用了DataGrid控件、LinkButton控件、Label控件和Button控件,表4.2客户管理界面控件属性控件ID属性LabelLbl_note默认LinkButtonLbtn_addOnClick=”Lbtn_add_Click”ButtonBtn_backOnClick=”Btn_back_Click”DataGridDgd_coustomer主要代码:publicpartialclasscustomer:System.Web.UI.Page{publicvoidBindGrid(){stringFill=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);Fill=SqlDataSource1.ConnectionString;SqlConnectioncn=newSqlConnection(Fill);//创建数据库连接stringmysql="selectCustom_id,Custom_name,Custom_charge,Custom_levelfromcustomer";SqlDataAdapterda=newSqlDataAdapter(mysql,cn);DataSetds=newDataSet();da.Fill(ds);Dgd_customer.DataSource=ds;Dgd_customer.DataBind();}publicvoidDataGrid_update(objectsender,DataGridCommandEventArgse){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;SqlConnectioncn=newSqlConnection(settings);//创建数据库连接 stringstrsql="updatecustomersetCustom_name=@Custom_name,Custom_charge=@Custom_charge,Custom_level=@Custom_levelwhereCustom_id=@Custom_id";SqlCommandcm=newSqlCommand(strsql,cn);try{……cm.Parameters["@Custom_id"].Value=Dgd_customer.DataKeys[(int)e.Item.ItemIndex];cm.Connection.Open();cm.ExecuteNonQuery();Lbl_note.Text="编辑成功";Dgd_customer.EditItemIndex=-1;}catch{Lbl_note.Text="编辑失败";Lbl_note.Style["color"]="red";}cm.Connection.Close();BindGrid();}publicvoidDataGrid_delete(objectsender,DataGridCommandEventArgse){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;SqlConnectioncn=newSqlConnection(settings);//创建数据库连接stringstrsql="deletefromcustomerwhereCustom_id=@customid";SqlCommandcm=newSqlCommand(strsql,cn);cm.Parameters.Add(newSqlParameter("@customid",SqlDbType.Char,10)); cm.Parameters["@customid"].Value=Dgd_customer.DataKeys[(int)e.Item.ItemIndex];cm.Connection.Open();try{cm.ExecuteNonQuery();Lbl_note.Text="删除成功";}catch(SqlException){Lbl_note.Text="删除失败";Lbl_note.Style["color"]="red";}cm.Connection.Close();BindGrid();}}4.3.1产品信息管理页面图4.9产品信息管理页面主要控件DataGrid控件、Button控件、CustomValidator控件、TextBox控件和Label控件。 表4.3产品信息管理界面控件属性控件ID属性TextBoxTbx_productid默认CustomValidatorCv_idControlToValidate=”Tbx_productid”ErrorMessage=”此编号已存在“TextBoxTbx_productname默认TextBoxTbx_introduceText=”增加新的投票项目”LabelLbl_noteButtonBtn_addOnClick=”Btn_add_Click”Text=”添加”ButtonBtn_exitOnClick=”Btn_exit_Click”Text=”退出”DataGridDgd_product主要代码:publicpartialclassproduct:System.Web.UI.Page{publicvoidBindGrid(){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;SqlConnectioncn=newSqlConnection(settings);//创建数据库连接SqlDataAdapterda=newSqlDataAdapter("select*fromproduct",cn);DataSetds=newDataSet();da.Fill(ds);Dgd_product.DataSource=ds;Dgd_product.DataBind();protectedvoidBtn_add_Click(objectsender,System.EventArgse){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString; SqlConnectioncn=newSqlConnection(settings);SqlCommandcm=newSqlCommand("insert_product_1",cn);cm.CommandType=CommandType.StoredProcedure;……cm.Connection.Open();try{cm.ExecuteNonQuery();Response.Redirect("product.aspx");}catch(SqlException){Lbl_note.Text="添加失败";Lbl_note.Style["color"]="red";}cm.Connection.Close();}privatevoidCv_id_ServerValidate(objectsource,System.Web.UI.WebControls.ServerValidateEventArgsargs){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);SqlConnectioncn=newSqlConnection(settings);cn.Open();SqlCommandcm=newSqlCommand("select*fromproductwhereProduct_id=@Product_id",cn);cm.Parameters.Add("@Product_id",SqlDbType.Char,10);cm.Parameters["@Product_id"].Value=Tbx_productid.Text;SqlDataReaderdr=cm.ExecuteReader();if(dr.Read()){args.IsValid=false; }else{args.IsValid=true;}cn.Close();}publicvoidDataGrid_update(objectsender,DataGridCommandEventArgse){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;SqlConnectioncn=newSqlConnection(settings);stringstrsql="updateproductsetProduct_name=@Product_name,Product_describe=@Product_describewhereProduct_id=@Product_id";SqlCommandcm=newSqlCommand(strsql,cn);……cm.Parameters["@Product_id"].Value=Dgd_product.DataKeys[(int)e.Item.ItemIndex];cm.Connection.Open();try{cm.ExecuteNonQuery();Lbl_note.Text="编辑成功";Dgd_product.EditItemIndex=-1;}catch(SqlException){Lbl_note.Text="编辑失败";Lbl_note.Style["color"]="red";}cm.Connection.Close(); BindGrid();}publicvoidDataGrid_delete(objectsender,DataGridCommandEventArgse){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;SqlConnectioncn=newSqlConnection(settings);if(Session["User_power"].ToString()=="0"){stringstrsql="deletefromproductwhereProduct_id=@productid";SqlCommandcm=newSqlCommand(strsql,cn);cm.Parameters.Add(newSqlParameter("@productid",SqlDbType.Char,10));cm.Parameters["@productid"].Value=Dgd_product.DataKeys[(int)e.Item.ItemIndex];cm.Connection.Open();try{cm.ExecuteNonQuery();Lbl_note.Text="删除成功";}catch(SqlException){Lbl_note.Text="删除失败";Lbl_note.Style["color"]="red";}cm.Connection.Close();BindGrid();}}} 4.1合同管理模块以管理员身份登录后进入如图4.10所示的合同管理页面。图4.10合同管理页面单击合同对应的“修改”链接会进入如图4.11所示的合同修改页面。图4.11合同修改页面单击“添加新合同”链接,进入添加新合同页面,输入新添加合同的详细信息,如图4.12所示。图4.12添加新合同 表4.4合同管理界面控件及其属性控件ID属性TextBoxTbx_contractid默认CustomValidatorCv_contractControlToValidate=”Tbx_contractid”ErrorMessage=”此合同已存在”DropDownListDdl-customer默认CustomValidatorCv_customeControlToValidate=”Tbx_customer”ErrorMessage=”此客户不存在“DropDownListDdl-product默认DropDownListDdl-state签署态签署态签署态返回");Response.End();}//在此处放置用户代码以初始化页面if(!IsPostBack){BindGrid();}}protectedvoidBtn_exit_Click(objectsender,System.EventArgse){Response.Redirect("default.aspx");}publicvoidDataGrid_page(objectsender,DataGridPageChangedEventArgse){Dgd_user.CurrentPageIndex=e.NewPageIndex;BindGrid(); }publicvoidBindGrid(){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;//创建数据库连接SqlConnectioncn=newSqlConnection(settings);SqlDataAdapterda=newSqlDataAdapter("select*fromusers",cn);DataSetds=newDataSet();da.Fill(ds);Dgd_user.DataSource=ds;Dgd_user.DataBind();}publicvoidDataGrid_cancel(objectsender,DataGridCommandEventArgse){Dgd_user.EditItemIndex=-1;BindGrid();}publicvoidDataGrid_edit(objectsender,DataGridCommandEventArgse){Dgd_user.EditItemIndex=(int)e.Item.ItemIndex;BindGrid();}publicvoidDataGrid_update(objectsender,DataGridCommandEventArgse){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;//创建数据库连接SqlConnectioncn=newSqlConnection(settings);SqlCommandcm=newSqlCommand("update_users_1",cn);cm.CommandType=CommandType.StoredProcedure;cm.Parameters.Add(newSqlParameter("@UserID",SqlDbType.Char,10));cm.Parameters.Add(newSqlParameter("@UserName",SqlDbType.NVarChar,50));cm.Parameters.Add(newSqlParameter("@UserPower",SqlDbType.Int,4));stringcolvalue=((TextBox)e.Item.Cells[2].Controls[0]).Text;cm.Parameters["@UserName"].Value=colvalue;colvalue=((TextBox)e.Item.Cells[3].Controls[0]).Text;cm.Parameters["@UserPower"].Value=colvalue;cm.Parameters["@UserID"].Value=Dgd_user.DataKeys[(int)e.Item.ItemIndex];cm.Connection.Open();try {cm.ExecuteNonQuery();Lbl_note.Text="编辑成功";Dgd_user.EditItemIndex=-1;}catch(SqlException){Lbl_note.Text="编辑失败";Lbl_note.Style["color"]="red";}cm.Connection.Close();BindGrid();}publicvoidDataGrid_delete(objectsender,DataGridCommandEventArgse){if(Session["User_power"].ToString()=="0"){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;//创建数据库连接SqlConnectioncn=newSqlConnection(settings);stringstrsql="deletefromuserswhereUserID=@userid";SqlCommandcm=newSqlCommand(strsql,cn);cm.Parameters.Add(newSqlParameter("@userid",SqlDbType.Char,10));cm.Parameters["@userid"].Value=Dgd_user.DataKeys[(int)e.Item.ItemIndex];cm.Connection.Open();try{cm.ExecuteNonQuery();Lbl_note.Text="删除成功";}catch(SqlException){Lbl_note.Text="删除失败";Lbl_note.Style["color"]="red";}cm.Connection.Close();BindGrid();}}protectedvoidDgd_user_SelectedIndexChanged(objectsender,EventArgse){ }}添加新用户代码:publicpartialclassadduser:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){}protectedvoidBtn_ok_Click(objectsender,EventArgse){if(Page.IsValid){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;//创建数据库连接SqlConnectioncn=newSqlConnection(settings);//打开数据库连接//cn.Open();SqlCommandcm=newSqlCommand("insert_users_1",cn);cm.CommandType=CommandType.StoredProcedure;cm.Parameters.Add(newSqlParameter("@User_id",SqlDbType.Char,10));cm.Parameters.Add(newSqlParameter("@User_password",SqlDbType.Char,10));cm.Parameters.Add(newSqlParameter("@User_name",SqlDbType.VarChar,50));cm.Parameters.Add(newSqlParameter("@User_power",SqlDbType.Int,4));cm.Parameters["@User_id"].Value=Tbx_id.Text;cm.Parameters["@User_password"].Value=Tbx_id.Text;cm.Parameters["@User_name"].Value=Tbx_name.Text;cm.Parameters["@User_power"].Value=Ddl_kind.SelectedItem.Value;cm.Connection.Open();try{cm.ExecuteNonQuery();Response.Redirect("users.aspx");}catch(SqlException){Lbl_note.Text="添加失败";Lbl_note.Style["color"]="red";}cm.Connection.Close();} }protectedvoidBtn_cancel_Click(objectsender,System.EventArgse){Response.Redirect("adduser.aspx");}privatevoidCv_id_ServerValidate(objectsource,System.Web.UI.WebControls.ServerValidateEventArgsargs){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;//创建数据库连接SqlConnectioncn=newSqlConnection(settings);//打开数据库连接cn.Open();SqlCommandcm=newSqlCommand("select*fromuserswhereUser_id=@user_id",cn);cm.Parameters.Add("@user_id",SqlDbType.Char,10);cm.Parameters["@user_id"].Value=Tbx_id.Text;SqlDataReaderdr=cm.ExecuteReader();if(dr.Read()){args.IsValid=false;}else{args.IsValid=true;}cn.Close();}}修改密码:publicpartialclassupdatepwd:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){}protectedvoidBtn_update_Click(objectsender,System.EventArgse){Pnl_update.Visible=true;Pn_user.Visible=false;}protectedvoidBtn_ok_Click(objectsender,System.EventArgse){ stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;//创建数据库连接SqlConnectioncn=newSqlConnection(settings);cn.Open();stringstrsql="updateuserssetUser_password='"+Tbx_newpwd.Text+"'whereUser_id='"+Tbx_id.Text+"'";SqlCommandcm=newSqlCommand(strsql,cn);try{cm.ExecuteNonQuery();Lbl_note.Text="修改成功,请返回!";}catch(SqlException){Lbl_note.Text="修改有误!";Pn_user.Visible=true;}cn.Close();}protectedvoidBtn_back_Click(objectsender,System.EventArgse){Response.Redirect("default.aspx");}}产品管理代码:publicpartialclassproduct:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack)BindGrid();if(Session["User_power"].ToString()=="0")Pn_id.Visible=true;elsePn_id.Visible=false;}publicvoidBindGrid(){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;//创建数据库连接SqlConnectioncn=newSqlConnection(settings);SqlDataAdapterda=newSqlDataAdapter("select*fromproduct",cn); DataSetds=newDataSet();da.Fill(ds);Dgd_product.DataSource=ds;Dgd_product.DataBind();}publicvoidDataGrid_page(objectsender,DataGridPageChangedEventArgse){Dgd_product.CurrentPageIndex=e.NewPageIndex;BindGrid();}protectedvoidBtn_add_Click(objectsender,System.EventArgse){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;//创建数据库连接SqlConnectioncn=newSqlConnection(settings);//打开数据库连接//cn.Open();SqlCommandcm=newSqlCommand("insert_product_1",cn);cm.CommandType=CommandType.StoredProcedure;cm.Parameters.Add(newSqlParameter("@Product_id",SqlDbType.Char,10));cm.Parameters.Add(newSqlParameter("@Product_name",SqlDbType.VarChar,50));cm.Parameters.Add(newSqlParameter("@Product_describe",SqlDbType.VarChar,50));cm.Parameters["@Product_id"].Value=Tbx_productid.Text;cm.Parameters["@Product_name"].Value=Tbx_productname.Text;cm.Parameters["@Product_describe"].Value=Tbx_introduce.Text;cm.Connection.Open();try{cm.ExecuteNonQuery();Response.Redirect("product.aspx");}catch(SqlException){Lbl_note.Text="添加失败";Lbl_note.Style["color"]="red";}cm.Connection.Close();}privatevoidCv_id_ServerValidate(objectsource,System.Web.UI.WebControls.ServerValidateEventArgsargs){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]); //创建数据库连接SqlConnectioncn=newSqlConnection(settings);cn.Open();SqlCommandcm=newSqlCommand("select*fromproductwhereProduct_id=@Product_id",cn);cm.Parameters.Add("@Product_id",SqlDbType.Char,10);cm.Parameters["@Product_id"].Value=Tbx_productid.Text;SqlDataReaderdr=cm.ExecuteReader();if(dr.Read()){args.IsValid=false;}else{args.IsValid=true;}cn.Close();}protectedvoidBtn_exit_Click(objectsender,System.EventArgse){Response.Redirect("default.aspx");}publicvoidDataGrid_cancel(objectsender,DataGridCommandEventArgse){Dgd_product.EditItemIndex=-1;BindGrid();}publicvoidDataGrid_edit(objectsender,DataGridCommandEventArgse){if(Session["User_power"].ToString()=="0"){Dgd_product.EditItemIndex=(int)e.Item.ItemIndex;BindGrid();}}publicvoidDataGrid_update(objectsender,DataGridCommandEventArgse){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;//创建数据库连接SqlConnectioncn=newSqlConnection(settings); //打开数据库连接//cn.Open();stringstrsql="updateproductsetProduct_name=@Product_name,Product_describe=@Product_describewhereProduct_id=@Product_id";SqlCommandcm=newSqlCommand(strsql,cn);cm.Parameters.Add(newSqlParameter("@Product_id",SqlDbType.Char,10));cm.Parameters.Add(newSqlParameter("@Product_name",SqlDbType.VarChar,50));cm.Parameters.Add(newSqlParameter("@Product_describe",SqlDbType.VarChar,50));stringcolvalue=((TextBox)e.Item.Cells[1].Controls[0]).Text;cm.Parameters["@Product_name"].Value=colvalue;colvalue=((TextBox)e.Item.Cells[2].Controls[0]).Text;cm.Parameters["@Product_describe"].Value=colvalue;cm.Parameters["@Product_id"].Value=Dgd_product.DataKeys[(int)e.Item.ItemIndex];cm.Connection.Open();try{cm.ExecuteNonQuery();Lbl_note.Text="编辑成功";Dgd_product.EditItemIndex=-1;}catch(SqlException){Lbl_note.Text="编辑失败";Lbl_note.Style["color"]="red";}cm.Connection.Close();BindGrid();}publicvoidDataGrid_delete(objectsender,DataGridCommandEventArgse){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;//创建数据库连接SqlConnectioncn=newSqlConnection(settings);if(Session["User_power"].ToString()=="0"){stringstrsql="deletefromproductwhereProduct_id=@productid";SqlCommandcm=newSqlCommand(strsql,cn);cm.Parameters.Add(newSqlParameter("@productid",SqlDbType.Char,10));cm.Parameters["@productid"].Value=Dgd_product.DataKeys[(int)e.Item.ItemIndex];cm.Connection.Open();try{ cm.ExecuteNonQuery();Lbl_note.Text="删除成功";}catch(SqlException){Lbl_note.Text="删除失败";Lbl_note.Style["color"]="red";}cm.Connection.Close();BindGrid();}}}客户信息管理代码:publicpartialclasscustomer:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack)BindGrid();}publicvoidBindGrid(){stringFill=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);Fill=SqlDataSource1.ConnectionString;//创建数据库连接SqlConnectioncn=newSqlConnection(Fill);stringmysql="selectCustom_id,Custom_name,Custom_charge,Custom_levelfromcustomer";SqlDataAdapterda=newSqlDataAdapter(mysql,cn);DataSetds=newDataSet();da.Fill(ds);Dgd_customer.DataSource=ds;Dgd_customer.DataBind();}publicvoidDataGrid_Page(objectsender,DataGridPageChangedEventArgse){Dgd_customer.CurrentPageIndex=e.NewPageIndex;BindGrid();}protectedvoidBtn_back_Click(objectsender,System.EventArgse){Response.Redirect("default.aspx");} publicvoidDataGrid_cancel(objectsender,DataGridCommandEventArgse){Dgd_customer.EditItemIndex=-1;BindGrid();}publicvoidDataGrid_edit(objectsender,DataGridCommandEventArgse){if(Session["User_power"].ToString()=="0"){Dgd_customer.EditItemIndex=(int)e.Item.ItemIndex;BindGrid();}}publicvoidDataGrid_update(objectsender,DataGridCommandEventArgse){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;//创建数据库连接SqlConnectioncn=newSqlConnection(settings);stringstrsql="updatecustomersetCustom_name=@Custom_name,Custom_charge=@Custom_charge,Custom_level=@Custom_levelwhereCustom_id=@Custom_id";SqlCommandcm=newSqlCommand(strsql,cn);try{cm.Parameters.Add(newSqlParameter("@Custom_id",SqlDbType.Char,10));cm.Parameters.Add(newSqlParameter("@Custom_name",SqlDbType.Char,10));cm.Parameters.Add(newSqlParameter("@Custom_charge",SqlDbType.Char,10));cm.Parameters.Add(newSqlParameter("@Custom_level",SqlDbType.Int,4));stringcolvalue=((TextBox)e.Item.Cells[1].Controls[0]).Text;cm.Parameters["@Custom_name"].Value=colvalue;colvalue=((TextBox)e.Item.Cells[2].Controls[0]).Text;cm.Parameters["@Custom_charge"].Value=colvalue;colvalue=((TextBox)e.Item.Cells[3].Controls[0]).Text;cm.Parameters["@Custom_level"].Value=colvalue;cm.Parameters["@Custom_id"].Value=Dgd_customer.DataKeys[(int)e.Item.ItemIndex];cm.Connection.Open();cm.ExecuteNonQuery();Lbl_note.Text="编辑成功";Dgd_customer.EditItemIndex=-1;}catch{ Lbl_note.Text="编辑失败";//Lbl_note.Text=ex.ToString();Lbl_note.Style["color"]="red";}cm.Connection.Close();BindGrid();}publicvoidDataGrid_delete(objectsender,DataGridCommandEventArgse){if(Session["User_power"].ToString()=="0"){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;//创建数据库连接SqlConnectioncn=newSqlConnection(settings);stringstrsql="deletefromcustomerwhereCustom_id=@customid";SqlCommandcm=newSqlCommand(strsql,cn);cm.Parameters.Add(newSqlParameter("@customid",SqlDbType.Char,10));cm.Parameters["@customid"].Value=Dgd_customer.DataKeys[(int)e.Item.ItemIndex];cm.Connection.Open();try{cm.ExecuteNonQuery();Lbl_note.Text="删除成功";}catch(SqlException){Lbl_note.Text="删除失败";Lbl_note.Style["color"]="red";}cm.Connection.Close();BindGrid();}}protectedvoidLbtn_add_Click(objectsender,System.EventArgse){try{if(Session["User_power"].ToString()=="0"||Session["User_power"].ToString()=="3")Response.Redirect("addcustomer.aspx");}catch {Response.Write("您不是合法用户,请登入后再操作,返回");Response.End();}}}添加客户代码:publicpartialclassaddcustomer:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){}protectedvoidBtn_reset_Click(objectsender,System.EventArgse){Response.Redirect("addcustomer.aspx");}protectedvoidBtn_exit_Click(objectsender,System.EventArgse){Response.Redirect("customer.aspx");}privatevoidCv_id_ServerValidate(objectsource,System.Web.UI.WebControls.ServerValidateEventArgsargs){stringstrconn=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);strconn=SqlDataSource1.ConnectionString;//创建数据库连接SqlConnectioncn=newSqlConnection(strconn);//打开数据库连接cn.Open();SqlCommandcm=newSqlCommand("select*fromcustomerwhereCustom_id=@CustomID",cn);cm.Parameters.Add("@CustomID",SqlDbType.Char,10);cm.Parameters["@CustomID"].Value=Tbx_id.Text;SqlDataReaderdr=cm.ExecuteReader();if(dr.Read()){args.IsValid=false;}else{args.IsValid=true;}cn.Close(); }protectedvoidBtn_add_Click(objectsender,System.EventArgse){if(Page.IsValid){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;//创建数据库连接SqlConnectioncn=newSqlConnection(settings);//打开数据库连接//cn.Open();SqlCommandcm=newSqlCommand("insert_customer_1",cn);cm.CommandType=CommandType.StoredProcedure;cm.Parameters.Add(newSqlParameter("@Custom_id",SqlDbType.Char,10));cm.Parameters.Add(newSqlParameter("@Custom_name",SqlDbType.Char,10));cm.Parameters.Add(newSqlParameter("@Custom_charge",SqlDbType.Char,10));cm.Parameters.Add(newSqlParameter("@Custom_introduce",SqlDbType.VarChar,50));cm.Parameters.Add(newSqlParameter("@Custom_level",SqlDbType.Int,4));cm.Parameters["@Custom_id"].Value=Tbx_id.Text;cm.Parameters["@Custom_name"].Value=Tbx_name.Text;cm.Parameters["@Custom_charge"].Value=Tbx_person.Text;cm.Parameters["@Custom_introduce"].Value=Tbx_introduce.Text;cm.Parameters["@Custom_level"].Value=Ddl_level.SelectedItem.Value;cm.Connection.Open();try{cm.ExecuteNonQuery();Lbl_note.Text="添加成功";Response.Redirect("customer.aspx");}catch(SqlException){Lbl_note.Text="添加失败";//Lbl_note.Text=ex.ToString();Lbl_note.Style["color"]="red";}cm.Connection.Close();}}}合同管理代码:publicpartialclasscontract:System.Web.UI.Page {protectedvoidPage_Load(objectsender,EventArgse){//判断用户是否为合法用户try{if(Session["User_power"].ToString()=="0"||Session["User_power"].ToString()=="1");else{Response.End();}}catch{Response.Write("您不是合法用户,请登入后再操作,返回");Response.End();}//在此处放置用户代码以初始化页面if(!IsPostBack)BindGrid();}publicvoidBindGrid(){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;SqlConnectioncn=newSqlConnection(settings);//创建数据库连接SqlDataAdapterda=newSqlDataAdapter("select*fromcontract",cn);DataSetds=newDataSet();da.Fill(ds);Dgd_contract.DataSource=ds;Dgd_contract.DataBind();}publicvoidDataGrid_Page(objectsender,DataGridPageChangedEventArgse){Dgd_contract.CurrentPageIndex=e.NewPageIndex;BindGrid();}protectedvoidBtn_exit_Click(objectsender,System.EventArgse){Response.Redirect("default.aspx");}publicvoidDataGrid_delete(objectsender,DataGridCommandEventArgse){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString; SqlConnectioncn=newSqlConnection(settings);//创建数据库连接if(Session["User_power"].ToString()=="0"){stringstrsql="deletefromcontractwherecontract_id=@contractid";SqlCommandcm=newSqlCommand(strsql,cn);cm.Parameters.Add(newSqlParameter("@contract",SqlDbType.Char,10));cm.Parameters["@contract"].Value=Dgd_contract.DataKeys[(int)e.Item.ItemIndex];cm.Connection.Open();try{cm.ExecuteNonQuery();Lbl_note.Text="删除成功";}catch(SqlException){Lbl_note.Text="删除失败";Lbl_note.Style["color"]="red";}cm.Connection.Close();BindGrid();}}protectedvoidDgd_contract_SelectedIndexChanged(objectsender,EventArgse){}protectedvoidgv_SelectedIndexChanged(objectsender,EventArgse){}protectedvoidPage_Load1(objectsender,EventArgse){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;//建立Connection对象SqlConnectionsqlcon=newSqlConnection(settings);sqlcon.Open();//打开连接//构造数据查询的SQL语句stringstrSelect="select*fromcontract";//建立Command对象SqlCommandsqlcmd=newSqlCommand(strSelect,sqlcon);//ExecuteReader()方法返回一个DataReader对象SqlDataReaderdr=sqlcmd.ExecuteReader();//DataReader对象指定为GridView控件的数据源gv.DataSource=dr; //为GridView控件进行数据绑定gv.DataBind();sqlcon.Close();}protectedvoidButton1_Click(objectsender,EventArgse){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;//建立Connection对象SqlConnectionsqlcon1=newSqlConnection(settings);sqlcon1.Open();//打开连接//接收用户的输入stringstrSe=TextBox1.Text.ToString();//构造模糊查询的SQL语句stringstrSelect1=string.Format("select*fromcontractwhereContract_idlike'%{0}%'",strSe);//建立Command对象SqlCommandsqlcmd1=newSqlCommand(strSelect1,sqlcon1);SqlDataReaderdr=sqlcmd1.ExecuteReader(CommandBehavior.CloseConnection);gv.DataSource=dr;gv.DataBind();sqlcon1.Close();Label1.Text="所执行的模糊查询语句为:
";Label1.Text+=strSelect1;Label1.Visible=true;}protectedvoidTextBox1_TextChanged(objectsender,EventArgse){}}添加合同代码:publicpartialclassaddcontract:System.Web.UI.Page{SqlConnectioncn;doublex;protectedvoidPage_Load(objectsender,EventArgse){//客户名称下拉列表框绑定stringstrconn=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);strconn=SqlDataSource1.ConnectionString;//连接本地计算机的ContractMS数据库SqlConnectioncn0=newSqlConnection(strconn);if(!IsPostBack){ cn0.Open();stringmysql="select*fromcustomer";SqlCommandcm0=newSqlCommand(mysql,cn0);SqlDataReaderdr0=cm0.ExecuteReader();while(dr0.Read()){Ddl_customer.Items.Add(newListItem(dr0["Custom_Name"].ToString(),dr0["Custom_ID"].ToString()));}cn0.Close();//产品名称下拉列表框绑定cn0.Open();stringmysql1="select*fromproduct";SqlCommandcm1=newSqlCommand(mysql1,cn0);SqlDataReaderdr1=cm1.ExecuteReader();while(dr1.Read()){Ddl_product.Items.Add(newListItem(dr1["Product_name"].ToString(),dr1["Product_id"].ToString()));}cn0.Close();}//在此处放置用户代码以初始化页面cn=newSqlConnection(strconn);}protectedvoidBtn_reset_Click(objectsender,System.EventArgse){Response.Redirect("addcontract.aspx");}protectedvoidBtn_exit_Click(objectsender,System.EventArgse){Response.Redirect("contract.aspx");}protectedvoidBtn_add_Click(objectsender,System.EventArgse){cn.Open();SqlCommandcm=newSqlCommand("insert_contract_detail_1",cn);cm.CommandType=CommandType.StoredProcedure;try{cm.Parameters.Add(newSqlParameter("@Contract_ID",SqlDbType.Char,10));cm.Parameters["@Contract_id"].Value=Tbx_contractid.Text;cm.Parameters.Add(newSqlParameter("@Product_id",SqlDbType.Char,10));cm.Parameters["@Product_id"].Value=Ddl_product.SelectedItem.Value; cm.Parameters.Add(newSqlParameter("@Product_book",SqlDbType.Int,4));cm.Parameters["@Product_book"].Value=Tbx_count1.Text;cm.Parameters.Add(newSqlParameter("@Product_send",SqlDbType.Int,4));cm.Parameters["@Product_send"].Value=Tbx_count2.Text;cm.Parameters.Add(newSqlParameter("@Product_price",SqlDbType.Money,8));cm.Parameters["@Product_price"].Value=Tbx_price.Text;cm.ExecuteNonQuery();Lbl_note.Text="添加成功,请返回";}catch{Lbl_note.Text="添加失败,请检查输入!";Lbl_note.Style["color"]="red";}SqlCommandcm1=newSqlCommand("insert_contract_1",cn);cm1.CommandType=CommandType.StoredProcedure;try{cm1.Parameters.Add(newSqlParameter("@Contract_id",SqlDbType.Char,10));cm1.Parameters["@Contract_id"].Value=Tbx_contractid.Text;cm1.Parameters.Add(newSqlParameter("@Custom_id",SqlDbType.Char,10));cm1.Parameters["@Custom_id"].Value=Ddl_customer.SelectedItem.Value;cm1.Parameters.Add(newSqlParameter("@Contract_state",SqlDbType.Int,4));cm1.Parameters["@Contract_state"].Value=Ddl_state.SelectedItem.Value;cm1.Parameters.Add(newSqlParameter("@Contract_start",SqlDbType.NVarChar,50));cm1.Parameters["@Contract_start"].Value=Tbx_date1.Text;cm1.Parameters.Add(newSqlParameter("@Contract_send",SqlDbType.DateTime,8));cm1.Parameters["@Contract_send"].Value=Tbx_date3.Text;cm1.Parameters.Add(newSqlParameter("@Contract_finish",SqlDbType.DateTime,8));cm1.Parameters["@Contract_finish"].Value=Tbx_date2.Text;cm1.Parameters.Add(newSqlParameter("@Contract_person",SqlDbType.Char,10));cm1.Parameters["@Contract_person"].Value=Tbx_person.Text;cm1.Parameters.Add(newSqlParameter("@Contract_price",SqlDbType.Money,8));cm1.Parameters["@Contract_price"].Value=Tbx_allmon.Text;cm1.ExecuteNonQuery();}catch{Lbl_note.Text="添加失败,请检查输入!";Lbl_note.Style["color"]="red";}cn.Close();cn.Open();stringstrsql1="selectsum(Contract_price)fromcontractwhereCustom_id='"+Ddl_customer.SelectedItem.Value+"'"; SqlCommandcm3=newSqlCommand(strsql1,cn);SqlDataReaderdr1=cm3.ExecuteReader();if(dr1.Read()){x=Convert.ToDouble(dr1[0].ToString());}cn.Close();stringstrsql2="updatecustomersetCustom_level=@Custom_levelwhereCustom_id='"+Ddl_customer.SelectedItem.Value+"'";SqlCommandcm2=newSqlCommand(strsql2,cn);cm2.Parameters.Add(newSqlParameter("@Custom_level",SqlDbType.Int,4));if(x>=500000)cm2.Parameters["@Custom_level"].Value="3";elseif(x>=1500000)cm2.Parameters["@Custom_level"].Value="2";elseif(x>=3500000)cm2.Parameters["@Custom_level"].Value="1";elsecm2.Parameters["@Custom_level"].Value="4";cm2.Connection.Open();try{cm2.ExecuteNonQuery();}catch(SqlException){Lbl_note.Text="添加失败";Lbl_note.Style["color"]="red";}cm2.Connection.Close();}privatevoidCv_contract_ServerValidate(objectsource,System.Web.UI.WebControls.ServerValidateEventArgsargs){cn.Open();SqlCommandcm=newSqlCommand("select*fromcontractwhereContract_id=@Contract_id",cn);cm.Parameters.Add("@Contract_id",SqlDbType.Char,10);cm.Parameters["@Contract_id"].Value=Tbx_contractid.Text;SqlDataReaderdr=cm.ExecuteReader();if(dr.Read()){args.IsValid=false;} else{args.IsValid=true;}cn.Close();}privatevoidCv_customer_ServerValidate(objectsource,System.Web.UI.WebControls.ServerValidateEventArgsargs){cn.Open();SqlCommandcm=newSqlCommand("select*fromcustomerwhereCustom_id=@Custom_id",cn);cm.Parameters.Add("@Custom_id",SqlDbType.Char,10);cm.Parameters["@Custom_id"].Value=Ddl_customer.SelectedItem.Value;SqlDataReaderdr=cm.ExecuteReader();if(dr.Read()){args.IsValid=true;}else{args.IsValid=false;}cn.Close();}}合同明细代码:publicpartialclasscontract_detail:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;//创建数据库连接SqlConnectioncn=newSqlConnection(settings);//打开数据库连接cn.Open();stringstrsql="selectcontract_detail.*,customer.Custom_name,product.Product_name,contract.*fromcontract_detail,customer,product,contractwherecontract_detail.Contract_id=@idandcontract_detail.Contract_id=contract.Contract_idandcontract.Custom_id=customer.Custom_idandcontract_detail.Product_id=product.Product_id";SqlCommandcm=newSqlCommand(strsql,cn); cm.Parameters.Add(newSqlParameter("@id",SqlDbType.Char,10));cm.Parameters["@id"].Value=Request.QueryString["Contract_id"];//cn.Open();SqlDataReaderdr=cm.ExecuteReader();Rp_detail.DataSource=dr;Rp_detail.DataBind();cn.Close();}protectedvoidBtn_back_Click(objectsender,System.EventArgse){Response.Redirect("contract.aspx");}}合同修改:publicpartialclassupdatecontract:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){//客户名称下拉列表框绑定stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;//创建数据库连接SqlConnectioncn0=newSqlConnection(settings);cn0.Open();stringmysql="select*fromcustomer";SqlCommandcm0=newSqlCommand(mysql,cn0);SqlDataReaderdr0=cm0.ExecuteReader();while(dr0.Read()){Ddl_customer.Items.Add(newListItem(dr0["Custom_name"].ToString(),dr0["Custom_id"].ToString()));}cn0.Close();//产品名称下拉列表框绑定cn0.Open();stringmysql1="select*fromproduct";SqlCommandcm1=newSqlCommand(mysql1,cn0);SqlDataReaderdr1=cm1.ExecuteReader();while(dr1.Read()){Ddl_product.Items.Add(newListItem(dr1["Product_name"].ToString(),dr1["Product_id"].ToString()));}cn0.Close(); //在此处放置用户代码以初始化页面if(!IsPostBack)display();}publicvoiddisplay(){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;//创建数据库连接SqlConnectioncn=newSqlConnection(settings);stringstrsql="select*fromcontract,contract_detailwherecontract.Contract_id=@Contract_idandcontract.Contract_id=contract_detail.Contract_id";SqlCommandcm=newSqlCommand(strsql,cn);cm.Parameters.Add(newSqlParameter("@Contract_id",SqlDbType.Char,10));cm.Parameters["@Contract_id"].Value=Request.QueryString["Contract_id"];cn.Open();SqlDataReaderdr=cm.ExecuteReader();if(dr.Read()){Lbl_contractid.Text=Request.QueryString["Contract_id"];Ddl_customer.SelectedItem.Value=dr["Custom_id"].ToString();Ddl_customer.Items.FindByValue(dr["Custom_id"].ToString()).Selected=true;Ddl_product.SelectedItem.Value=dr["Product_id"].ToString();Ddl_product.Items.FindByValue(dr["Product_id"].ToString()).Selected=true;Ddl_state.SelectedItem.Value=dr["Contract_state"].ToString();Ddl_state.Items.FindByValue(dr["Contract_state"].ToString()).Selected=true;Tbx_date1.Text=dr["Contract_start"].ToString();Tbx_date3.Text=dr["Contract_send"].ToString();Tbx_date2.Text=dr["Contract_finish"].ToString();Tbx_person.Text=dr["Contract_person"].ToString();Tbx_allmon.Text=dr["Contract_price"].ToString();Tbx_count1.Text=dr["Product_book"].ToString();Tbx_count2.Text=dr["Product_send"].ToString();Tbx_price.Text=dr["Product_price"].ToString();}else{Lbl_contractid.Text="error!";}cn.Close();}protectedvoidBtn_update_Click(objectsender,System.EventArgse){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString; SqlConnectioncn=newSqlConnection(settings);//创建数据库连接if(Page.IsValid){cn.Open();SqlCommandcm=newSqlCommand("update_contract_1",cn);cm.CommandType=CommandType.StoredProcedure;try{cm.Parameters.Add(newSqlParameter("@Contract_id",SqlDbType.Char,10));cm.Parameters.Add(newSqlParameter("@Custom_id",SqlDbType.Char,10));cm.Parameters.Add(newSqlParameter("@Contract_state",SqlDbType.Int,4));cm.Parameters.Add(newSqlParameter("@Contract_start",SqlDbType.VarChar,50));cm.Parameters.Add(newSqlParameter("@Contract_send",SqlDbType.DateTime,8));cm.Parameters.Add(newSqlParameter("@Contract_finish",SqlDbType.DateTime,8));cm.Parameters.Add(newSqlParameter("@Contract_person",SqlDbType.Char,10));cm.Parameters.Add(newSqlParameter("@Contract_price",SqlDbType.Money,8));cm.Parameters["@Contract_id"].Value=Request.QueryString["Contract_id"];cm.Parameters["@Custom_id"].Value=Ddl_customer.SelectedItem.Value;cm.Parameters["@Contract_state"].Value=Ddl_state.SelectedItem.Value;cm.Parameters["@Contract_start"].Value=Tbx_date1.Text;cm.Parameters["@Contract_send"].Value=Tbx_date3.Text;cm.Parameters["@Contract_finish"].Value=Tbx_date2.Text;cm.Parameters["@Contract_person"].Value=Tbx_person.Text;cm.Parameters["@Contract_price"].Value=Tbx_allmon.Text;cm.ExecuteNonQuery();Lbl_note.Text="修改成功";}catch{Lbl_note.Text="修改失败";Lbl_note.Style["color"]="red";}SqlCommandcm1=newSqlCommand("update_contract_detail_1",cn);cm1.CommandType=CommandType.StoredProcedure;try{cm1.Parameters.Add(newSqlParameter("@Contract_id",SqlDbType.Char,10));cm1.Parameters.Add(newSqlParameter("@Product_id",SqlDbType.Char,10));cm1.Parameters.Add(newSqlParameter("@Product_book",SqlDbType.Int,4));cm1.Parameters.Add(newSqlParameter("@Product_send",SqlDbType.Int,4));cm1.Parameters.Add(newSqlParameter("@Product_price",SqlDbType.Money,8));cm1.Parameters["@Contract_id"].Value=Request.QueryString["Contract_id"];cm1.Parameters["@Product_id"].Value=Ddl_product.SelectedItem.Value;cm1.Parameters["@Product_book"].Value=Tbx_count1.Text;cm1.Parameters["@Product_send"].Value=Tbx_count2.Text;cm1.Parameters["@Product_price"].Value=Tbx_price.Text; cm1.ExecuteNonQuery();Lbl_note.Text="修改成功";}catch{Lbl_note.Text="修改失败";Lbl_note.Style["color"]="red";}cn.Close();}}protectedvoidBtn_back_Click(objectsender,System.EventArgse){Response.Redirect("contract.aspx");}privatevoidCv_customer_ServerValidate(objectsource,System.Web.UI.WebControls.ServerValidateEventArgsargs){stringsettings=Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);settings=SqlDataSource1.ConnectionString;SqlConnectioncn=newSqlConnection(settings);//创建数据库连接cn.Open();SqlCommandcm=newSqlCommand("select*fromcustomerwhereCustom_id=@Custom_id",cn);cm.Parameters.Add("@Custom_id",SqlDbType.Char,10);cm.Parameters["@Custom_id"].Value=Ddl_customer.SelectedItem.Value;SqlDataReaderdr=cm.ExecuteReader();if(dr.Read()){args.IsValid=true;}else{args.IsValid=false;}cn.Close();}}袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭