银行客户比对系统的设计与实现_第1页
银行客户比对系统的设计与实现_第2页
银行客户比对系统的设计与实现_第3页
银行客户比对系统的设计与实现_第4页
银行客户比对系统的设计与实现_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河北农业大学毕业论文题目:银行客户比对系统的设计与实现摘要金融业是典型的高级服务业,客户是最重要的资源,如何有效的管理客户信息并准确把握客户情况,成为了当下众多银行面对的新课题。本文主要对银行客户比对系统的设计与实现进行讨论,本文基于ASP.net技术,使用C#语言配合MicrosoftVisualStudio2010开发工具和MicrosoftSQLServer2008R2数据库论述了如何利用设计系统实现用户登录、用户管理、数据上传、数据查询、数据下载比对等功能的实现,本文给出了系统实际运行界面,以及数据库相关设计关系图尽可能满足了客户的实际需求。关键字:银行;比对;ASP.NETAbstractThefinancialindustryisatypicalseniorservices,thecustomeristhemostimportantresource,howtoeffectivelymanagecustomerinformationandaccurategraspofcustomers,themomenthasbecomeanewtopicofmanybanksface.ThispaperfocusesonbankcustomersonthesystemdesignandimplementationthandiscussingBasedonASP.nettechnology,theuseofC#languagewithMicrosoftVisualStudio2010developmenttoolsandMicrosoftSQLServer2008R2databasedesigndiscusseshowtousethesystemforuserstologin,theusermanagement,dataupload,dataquery,datadownloadsthantherealizationofotherfunctions,thispapergivestheactualoperatingsysteminterfaceanddatabase-relateddesigndiagramsaspossibletomeettheactualneedsofcustomers.

Keywords:banks;comparedto;ASP.NET目录1 绪论 11.1 课题背景和意义 11.2 国内外现状分析 11.3 论文组织结构 22 相关技术及工具 32.1 C#语言 32.2 ASP.NET 32.3 SQLServer2008 42.4 VisualStudio2010 53 系统的需求及可行性分析 63.1 系统可行性 63.1.1 技术可行性 63.1.2 经济可行性 63.1.3 运行可行性 63.2 系统需求分析 73.2.1 系统功能需求 73.2.2 开发运行环境 73.2.3 其他系统需求 73.2.4 系统具体功能要求 84 系统设计 94.1 系统结构设计 94.2 系统数据库设计 94.3 数据库访问CCB.Data类库的实现 144.4 通用功能CCB.Common类库的实现 164.4.1 通用处理封装 164.4.2 配置文件相关操作封装 174.4.3 数据库连接初始化封装 174.4.4 系统日志封装 184.4.5 系统加密封装 185 网站界面实现 195.1 管理员登陆界面设计 195.2 数据文件管理界面 225.3 数据文件上传界面 235.4 有效客户分析界面 256 结论 29参考文献 30致谢 31

绪论课题背景和意义改革开放以来,中国金融业对外开放步伐明显加快,按照加入世界贸易组织时的承诺开放了对外资银行、外资保险公司的地域限制和业务限制。中国现代化支付系统建设也取得了突破性进展,基本建立了覆盖广泛、功能齐全的跨市场、跨境支付结算体系,人民币在香港和澳门实现清算安排。以网络为基础的电子资金交易系统不断完善,实现了银行间债券市场券款对付(DVP)清算,为投资者提供了安全、高效、便捷的资金交易和清算服务。中央银行建立和完善了一系列的金融监控信息系统,支付清算、账户管理、征信管理、国库管理、货币金银管理、反洗钱监测分析、金融统计监测管理信息等和办公政务实现了信息化。商业银行的综合业务处理、资金汇兑、银行卡服务等基本实现了计算机联网处理和数据集中处理,自助银行、网络银行、电子商务、网上支付结算等新型金融服务迅速发展。金融业是典型的高级服务业,客户是最重要的资源,如何有效的管理客户信息并准确把握客户需求,成为了当下众多银行面对的新课题,随着时代的进步,银行企业的客户也逐渐变得多起来;当今资金流动越来越频繁,使得银行管理工作也变的越来越复杂。以前人们使用传统的人工方式管理客户信息,这种管理方式存在着许多缺点,如效率低下、保密性差等。另外,时间一长将产生大量的文件和数据,这对于信息的查找、更新和维护来说都带来了不少的困难。所以,如何有效率地管理比对好银行客户信息,成为银行管理中一个重要的问题。如果能实现管理的自动化,无疑将给银行管理带来很大的方便。银行客户比对系统也根据这一需求应运而生。国内外现状分析目前,最常用的动态网页开发的语言有ASP(Active

Server

Pages),JSP(JavaServer

Pages),PHP

(Hypertext

Preprocessor)。其中ASP所具有的强大的安全性和适应型。使它可以应用在几乎全部的平台上。ASP.NET是在服务器上运行的编译好的公共语言运行库代码。与被解释的前辈不同,ASP.NET可利用早期绑定、实时编译、本机优化和盒外缓存服务。这相当于在编写代码行之前就显著提高了性能,同时,ASP.NET框架补充了VisualStudio集成开发环,再加上由于ASP.NET基于公共语言运行库,因此Web应用程序开发人员可以利用整个平台的威力和灵活性。.NET框架类库、消息处理和数据访问解决方案都可从Web无缝访问。ASP.NET也与语言无关,所以可以选择最适合应用程序的语言,或跨多种语言分割应用程序。因为m$给封装了很多控件以及很多现成的模式的缘故,网站的建立速度很快,但是因为推出时间不长,大型的应用还比较少,大型应用没有很多案例可以借鉴,但并不能说明不适合做大型应用。msnspaces正是依靠技术制作。而的缺点是基本只能在微软开发平台上运行良好,虽然有其他平台版本但实际存在于其他平台的应用数量几乎为零,平台的局限性严重影响了的发展[1]。随着计算机技术飞速发展,信息技术全面地渗透到人类社会的各个方面,信息化成为世界和社会发展的大趋势。企业的管理从人工到自动化、智能化和高效性。计算机在企业管理中应用的普及,利用计算机实现现代企业客户的管理也势在必行。客户是企业的生存之本,客户信息的资料对企业来说至关重要。为了适应现代信息管理,节省人力、物力和财力,银行业也不会成为这个例外,但是,纵观整个应用市场,针对银行的应用多为类似“银行客户管理系统”之类的基本管理系统,真正涉足银行客户比对的应用可谓是少之又少,可以说存在一个巨大的空白可供我们填充[2-4]。论文组织结构本论文主要分六章第一章为绪论,主要论述银行客户比对系统系统的背景和意义,以及国内外现状。第二章为开发技术和工具的介绍,主要论述银行客户比对系统开发过程中用到的技术和工具。第三章为需求分析,主要论述从系统的真实需求出发,对系统的功能性和非功能性需求的描述,以及遇到的问题和解决方案。第四章为系统设计,主要划分系统的主要功能,以及系统的功能,描述数据库表结构及相关属性。第五章为网站实现,主要是对系统的主要功能的详细描述以及实现过程,以及一些界面截图。第七章为总结,主要是对自己在完成毕业设计的过程中的工作的总结。

相关技术及工具C#语言C#是微软公司在2000年7月发布的一种全新且简单、安全、面向对象的程序设计语言,是专门为.NET的应用而开发的语言。它吸收了C++、VisualBasic、Delphi、Java等语言的优点,体现了当今最新的程序设计技术的功能和精华。C#继承了C语言的语法风格,同时又继承了C++的面向对象特性。不同的是,C#的对象模型已经面向Internet进行了重新设计,使用的是.NET框架的类库;C#不再提供对指针类型的支持,使得程序不能随便访问内存地址空间,从而更加健壮;C#不再支持多重继承,避免了以往类层次结构中由于多重继承带来的可怕后果[2]。.NET框架为C#提供了一个强大的、易用的、逻辑结构一致的程序设计环境。同时,公共语言运行时(CommonLanguageRuntime)为C#程序语言提供了一个托管的运行时环境,使程序比以往更加稳定、安全[3-5]。C#最大的优点是C#是一种彻头彻尾的为.NETFramework设计的语言是在移植到其他系统地上的.NET版本中使用的主要语言。要使诸如VB的语言尽可能类似于其以前的语言仍遵循CLR,就不能完全支持.NET代码库的某些功能,至少需要不常见的语法。但C#能使用.NETFramework代码库提供这种功能。.NET的最新版本还对C#语言进行了几处改动,满足了开发人员的要求,使之更加强大。C#还有以下几个优点:完全支持类和面向对象编程,包括接口和继承、虚函数和运算符重载的处理。定义完整、一致的基本类型集。对自动生成XML文档说明的内置支持。自动清理动态分配的内存。可以用用户定义的特性来标记类或方法。这可以用于文档说明,对编译有一定的影响。对.NET基类库的完全访问权,并易于访问WindowsAPI。可以使用指针和直接内存访问,C#语言可以在没有它们的条但件下访问内存。以VB的风格支持属性和事件。改变编译器选项,可以把程序编译为可执行文件或.NET组件库,该组件库可以用与ActiveX控件(COM组件)相同的方式由其他代码调用。C#可以用于编写ASP.NET动态Web页面和XMLWeb服务。应该指出,对于上述大多数特性,VB.NET和ManagedC++也具备。但C#从一开始就使用.NET,对.NET特性的支持不仅是完整的,而且提供了比其他语言更合适的语法[6]。ASP.NETASP.NET是.NETFramework的一部分,是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术,它可以在通过HTTP请求文档时再在Web服务器上动态创建它们。指ActiveServerPages(动态服务器页面),运行于IIS(InternetInformationServer服务)之中的程序[7]。ASP.NET不仅仅只是ASP3的一个简单升级,它更为我们提供了一个全新而强大的服务器控件结构。从外观上看,ASP.NET和ASP是相近的,但是从本质上是完全不同的。ASP.NET几乎全是基于组件和模块化,每一个页,对象,和HTML元素都是一个运行的组件对象。在开发语言上,ASP.NET抛弃了VBSCRIPT和JSCRIPT,而使用.NETFramework所支持的VB.NET,C#.NET等语言作为其开发语言,这些语言生成的网页在后台被转换成了类并编译成了一个DLL。由于ASP.NET是编译执行的,所以它比ASP拥有了更高的效率[8]。SQLServer2008SQLServer2008在Microsoft的数据平台上发布,帮助用户的组织随时随地管理任何数据。它可以将结构化、半结构化和非结构化文档的数据(例如图像和音乐)直接存储到数据库中。SQLServer2008提供一系列丰富的集成服务,可以对数据进行查询、搜索、同步、报告和分析之类的操作。数据可以存储在各种设备上,从数据中心最大的服务器一直到桌面计算机和移动设备,用户可以控制数据而不用管数据存储在哪里。SQLServer2008允许用户在使用Microsoft.NET和VisualStudio开发的自定义应用程序中使用数据,在面向服务的架构(SOA)和通过MicrosoftBizTalkServer进行的业务流程中使用数据。信息工作人员可以通过他们日常使用的工具(例如2007MicrosoftOffice系统)直接访问数据。SQLServer2008提供一个可信的、高效率智能数据平台,可以满足用户的所有数据需求。SQLServer2008的主要特点:(1)可信SQLServer为用户的业务关键型应用程序提供最高级别的安全性、可靠性和伸缩性。(2)高效率为了抓住如今风云变幻的商业机会,公司需要能力来快速创建和部署数据驱动的解决方案。SQLServer2008减少了管理和开发应用程序的时间和成本。(3)智能SQLServer2008提供全面的平台,在用户需要的时候提供智能。SQL2008新增功能:(1)可用性增强功能:增强数据库镜像功能,MicrosoftSQLServer2008数据库的可用性得到改进。可以使用数据库镜像创建热备用服务器,从而提供快速故障转移且已经提交的事务不会丢失数据。(2)易管理性增强功能:通过增强工具和监视功能,SQL2008数据库引擎的易管理性得到简化。(3)针对可编程性的增强功能:包括新数据存储功能、新数据类型、新全文搜索体系结构以及对Transact-SQL所作所为的许多改进和添加。(4)针对可扩展性和性能的增强功能:包含筛选信息索引和统计信息、新表和查询提示、新查询性能和查询处理性能。(5)针对安全性的增强功能:包括新加密函数、透明数据加密及可扩展密钥管理功能,以及针对DES算法的澄清。VisualStudio2010VisualStudio是微软公司推出的开发环境。是目前最流行的Windows平台应用程序开发环境。VisualStudio2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。VisualStudio2010同时带来了NETFramework4.0、MicrosoftVisualStudio2010CTP(CommunityTechnologyPreview--CTP),并且支持开发面向Windows7的应用程序。除了MicrosoftSQLServer,它还支持IBMDB2和Oracle数据库[8]。新功能还包括:(1)C#4.0中的动态类型和动态编程;(2)多显示器支持;(3)使用VisualStudio2010的特性支持TDD;(4)支持Office;(5)QuickSearch特性;(6)C++0x新特性;(7)IDE增强;根据微软发布的一份官方文档宣称,VisualStudio2010和.NETFramework4.0将在下面五个方面有所创新:(1)民主化的应用程序生命周期管理在一个组织中,应用程序生命周期管理(ALM)将牵涉到多个角色。但是在传统意义上,这一过程中的每个角色并不是完全平等的。VisualStudioTeamSystem2010将坚持打造一个功能平等、共同分担的平台以用于组织内的应用程序生命周期管理过程。(2)顺应新的技术潮流每年,业界内的新技术和新趋势层出不穷。通过VisualStudio2010,微软将为开发者提供合适的工具和框架,以支持软件开发中最新的架构,开发和部署。(3)让开发者提升效率从VisualStudio的第一个版本开始,微软就将提高开发人员的工作效率和灵活性作为自己的目标。VisualStudio2010将继续关注并且显著地改进开发者最核心的开发体验。(4)适应下一代平台开发微软将继续投资于市场领先的操作系统,工具软件和服务器平台,为客户创造更高的价值。使用VisualStudio2010,将可以在新一代的应用平台上。(5)跨部门应用客户将在不同规模的组织内创建应用,跨度从单个部门到整个企业。VisualStudio2010将确保在这么宽泛的范围内的应用开发都得到支持。(6)高效开发环境MicrosoftVisualStudio2010采用拖曳式便能完成软件的开发。简简单单的操作便可以实现一个界面的生成。但拖曳的界面,也应当有相应的代码来实现功能。MicrosoftVisualStudio2010支持C#、C++、VB,可以快速实现相应的功能[9-11]。系统的需求及可行性分析系统可行性究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。也就是说可行性研究的目的不是解决问题,而是确定问题是否值得去解决,研究在当前的具体条件下,开发新系统是否具备必要的资源和其它条件。一般说来,应从经济可行性、技术可行性、运行可行性等方面分析系统可行性。技术可行性技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。本银行客户比对系统使用SQL2008R2数据库和MicrosoftVisualStudio2010进行开发,同为微软出品的两者具有非常好的相性,且新版的SQL2008更加方便用户创建数据库操作更为简便,两者组合堪称最适合开发ASP.NET的工具组合,既支持交互环境,又支持编程环境,且具有向下兼容性,对数据的完整性和一致性进行控制,以保证只对有效的数据进行处理.它提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性.系统调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,软件方面:由于目前单机模式相对发展成熟,故软件的开发平台成熟可行。因此系统在技术上是绝对可行的。经济可行性主要从对项目的经济上进行分析评价,一方面是支出的费用,包括设备购置费、管理和维护费用、人员工资和培训费等,另一个是取得的收益。此系统仅仅是简单的比对系统且主要算法由需求方提供,实际工作量主要集中在页面设计以及为加强效率方面所做的工作上,但是此系统可以减少需求方工作人员的大量工作,加快工作效率,提升银行的服务质量,所以,开发此程序从经济角度讲是可行的。运行可行性在信息化时代的现在,单位中使用PC电脑已不是什么奇怪的事情,电脑的高效以及低出错率使得当今银行中的工作人员早已熟练掌握基本的电脑操作技术,且本系统构造并不复杂,操作也没有过多要求,一般工作人员没有任何技术障碍,所以,银行客户比对系统从运行角度讲是可行的。综上所述,开发银行客户比对系统具备可行性。系统需求分析本系统为简单的银行数据管理系统,方便银行日常的数据管理比对,因此本系统应达到如下目标:(1)界面简洁友好一目了然,方便用户操作。(2)能实现简单的用户管理,分清权限大小。(3)运行效率比较合理。系统功能需求(1)实用性设计出来的系统必须操作简捷、简单明了,方便前台操作人员熟悉理解且直观的将所需信息呈现在操作者面前,减少操作复杂性,同时保证信息准确无误。(2)高效性能简单高速的运行系统,处理信息快速,不耽误业务办理速度。(3)安全性在达到以上前提的同时保证系统的安全运行,保证存在系统中的信息不会丢失,故需要设计用户权限以保证敏感信息的安全。开发运行环境开发环境:SQLServer2008R2,VisualStudio2010。运行环境:IE6.0以上浏览器,OFFICE2007以上版本。其他系统需求界面需求:表3-SEQ表格\*ARABIC1界面需求表需求名称详细要求整体简介、明了窗体功能单一,一个功能尽量在单一窗体内完成,少有嵌套窗体提示明确、无二义质量要求:表3-SEQ表格\*ARABIC2质量要求表需求名称详细要求正确性系统运行无误健壮性容错。可靠性数据完整性约束效率有一定的效率要求易用性用户可按系统提示操作清晰性无二义安全性严格用户权限系统具体功能要求根据要求,银行客户比对系统的功能主要有:(1)管理员管理:管理员登录、重新登录、修改密码、退出。(2)系统管理(权限要求):管理员添加、删除、密码重置、属性状态查询。(3)数据文件管理:数据文件上传、下载、删除、搜索、导入。(4)查询比对:比对数据查询下载。图图3-1银行客户比对系统模块图系统设计系统结构设计考虑到系统的扩展性和标准化要求,本次研究的系统网站使用三层结构思想设计,降低层与层之间的依赖程度,区分分明,有利于后期的升级维护。三层架构概念:所谓三层体系结构,是在客户端与数据库之间加入了一个中间件层,也叫组件层。三层是指逻辑上的三层,即使这三个层放置到一台机器上。三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交换[11-12]。三层结构包括:(1)数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务。(2)业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。(3)表示层:主要表示Web方式,也可以表示成Winform方式,Web方式也可以表成:aspx,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层能完善地提供服务。根据实际情况设计银行客户比对系统的三层结构如下:(1)数据访问层:主要负责数据库访问相关功能。(2)业务逻辑层:主要负责逻辑处理。(3)表示层:用户界面层UI。系统数据库设计数据库在一个信息管理系统中占有相当重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据的存储效率,保证数据的完整和一致。数据库需求分析是数据库结构设计的第一阶段。这个阶段主要是收集基本数据、数据结构以及数据处理的流程,组成一份详细的数据字典,为以后的进一步设计打下基础。针对本实例,通过对银行客户比对的内容和数据流程分析,设计的数据项和数据结构如下:(1)管理员属性信息表,根据需求包含的信息有:ID、姓名、密码、机构名称、邮箱、电话、登陆次数、上次登录时间、这次登录时间、上次退出时间、这次登陆IP地址、上次登录IP地址、状态、管理员级别。(2)文件报告期管理表,包含信息有:文件名、旧文件名、文件大小、上传日、年、月、同年同期。(3)文件场景代码表,包含信息有:ID、机构代号、场景名称、场景描述、权限、是否已存在、上传文件银行等级。(4)文件数据信息表,为保管文件比对文件设计,包含信息有:报告期、机构编码、场景、客户编码、客户名称、行业、规模、网点是否有效客户、支行是否有效客户、二级分行是否有效客户、一级分行是否有效客户、总行是否有效客户、公司机构客户金融总量日均余额合计(元)、金融资产日均余额小计(元)、日均一般存款(元)、日均投资理财小计(元)、日均基金合计(元)、日均基金(不含建信)(元)、日均代销建信基金(元)、日均保本理财(元)、日均非保本理财(元)、日均保险合计(元)、日均保险(不含建信)(元)、日均代销建信保险(元)、日均国债(元)、日均账户金(元)、日均实物金(元)、日均信托合计(元)、日均信托(不含建信)(元)、日均代销建信信托(元)、同业存款日均余额(元)、贷款日均余额合计(元)、日均贷款(不含信用卡透支)(元)、日均信用卡透支(元)、公司机构客户金融总量时点余额合计(元)、金融资产时点余额小计(元)、时点一般存款(元)、时点投资理财小计(元)、时点基金合计(元)、时点基金(不含建信)(元)、时点代销建信基金(元)、时点保本理财(元)、时点非保本理财(元)、时点保险合计(元)、时点保险(不含建信)(元)、时点代销建信保险(元)、时点国债(元)、时点账户金(元)、时点实物金(元)、时点信托合计(元)、时点信托(不含建信)(元)、时点代销建信信托(元)、同业存款时点余额(元)、贷款时点余额合计(元)、时点贷款(不含信用卡透支)(元)、时点信用卡透支(元)、账务性交易量笔数合计、柜面交易笔数、自助设备交易笔数、电子银行交易笔数、POS交易笔数、其他交易笔数、产品覆盖度、公司类存款日均余额(元)、公司类贷款日均余额(元)、小企业贷款日均余额(元)、贸易融资表内日均余额(元)、贸易融资表外业务使用情况、保理业务日均余额(元)、保理业务中间业务收入(元)、现金管理业务签约、单位客户账单业务使用、国内信用证业务收入(元)、单位通存通兑业务签约、其他单位人民币结算业务收入(元)、债务融资工具承销与投资银行理财收入(元)、国际结算业务收入(元)、单位结售汇业务收入(元)、代发工资业务收入(元)、顾问咨询业务收入(元)、保函业务收入(元)、企业年金业务收入(元)、实业投资托管业务收入(元)、证券保证金独立存管业务签约、企业网上银行渠道签约、现金管理系统收入(元)。在上面的实体以及实体之间的关系基础上,形成数据库中的表格以及表格之间的关系。银行客户管理系统数据库中的各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。表4-1表admin管理员信息表列名数据类型长度可否为空说明IDintNOTNULLID号码(主键)AdminNamevarchar50NULL用户名称AdminPasswordvarchar50NULL用户密码Emailvarchar100NULL电子邮箱Telephonevarchar50NULL电话LoginTimesintNULL登录时间LastLoginDatedatetime8NULL上次登录日期ThisLoginDatedatetime8NULL此次登录日期LastLogoutDatedatetime8NULL上次登出日期ThisIPvarchar50NULL此次登录IPLastIPvarchar50NULL上次登录IPStateIDintNULL机构代码AdminLevelIntNULL用户级别Departmentvarchar50NULL机构说明表4-2表DBFile文件报告期管理表列名数据类型长度可否为空说明IDintNOTNULLID号码(主键)FileNamevarchar100NULL文件名称OldFileNameVarchar100NULL旧文件名FileSizeVarchar200NULL大小UploadDatedatetime8NULL上传日YearVarchar4NULL年MonthVarchar2NULL月YearAndMonthVarchar6NULL同年同期表4-3文件场景代码表列名数据类型长度可否为空说明IDintNOTNULLID号码(主键)RuleCodeVarchar200NULL机构代号RuleNameVarchar200NULL场景名称RuleIntroductionvarchar200NULL场景描述ConditionTextNULL状态PowerIntNULL权限IsUsedIntNULL已使用[Level]IntNULL等级表4-4文件数据信息表列名数据类型长度可否为空ID(主键)intNOTNULL报告期varchar200NULL机构编码varchar200NULL场景varchar200NULL客户编码varchar200NULL客户名称varchar200NULL行业varchar200NULL规模varchar200NULL网点是否有效客户varchar200NULL支行是否有效客户varchar200NULL二级分行是否有效客户varchar200NULL一级分行是否有效客户varchar200NULL总行是否有效客户varchar200NULL公司机构客户金融总量日均余额合计(元)money8NULL金融资产日均余额小计(元)money8NULL日均一般存款(元)money8NULL日均投资理财小计(元)money8NULL日均基金合计(元)money8NULL日均基金(不含建信)(元)money8NULL日均代销建信基金(元)money8NULL日均保本理财(元)money8NULL日均非保本理财(元)money8NULL日均保险合计(元)money8NULL日均保险(不含建信)(元)money8NULL日均代销建信保险(元)money8NULL日均国债(元)money8NULL日均账户金(元)money8NULL日均实物金(元)money8NULL日均信托合计(元)money8NULL日均信托(不含建信)(元)money8NULL日均代销建信信托(元)money8NULL同业存款日均余额(元)money8NULL贷款日均余额合计(元)Money8NULL日均贷款(不含信用卡透支)(元)Money8NULL日均信用卡透支(元)Money8NULL公司机构客户金融总量时点余额合计(元)Money8NULL金融资产时点余额小计(元)money8NULL时点一般存款(元)money8NULL时点投资理财小计(元)money8NULL时点基金合计(元)money8NULL时点基金(不含建信)(元)money8NULL时点代销建信基金(元)money8NULL时点保本理财(元)money8NULL时点非保本理财(元)money8NULL时点保险合计(元)money8NULL时点保险(不含建信)(元)money8NULL时点代销建信保险(元)money8NULL时点国债(元)money8NULL时点账户金(元)money8NULL时点实物金(元)money8NULL时点信托合计(元)money8NULL时点信托(不含建信)(元)money8NULL时点代销建信信托(元)money8NULL同业存款时点余额(元)money8NULL贷款时点余额合计(元)money8NULL时点贷款(不含信用卡透支)(元)money8NULL时点信用卡透支(元)money8NULL账务性交易量笔数合计intNULL柜面交易笔数intNULL自助设备交易笔数intNULL电子银行交易笔数intNULL在设计表格的同时我们也设置了大量的配套存储过程以提升SQL的运行效率,主要原因为:(1)存储过程可以嵌套使用支持代码重用。(2)存储过程可以接受与使用动态参数执行器冲的SQL语句。(3)存储过程比一般SQL语句执行速度快。存储过程在创建的时候已经编译,每次执行不需要重新编译,而SQL语句每次执行都需要编译。(4)存储过程具有安全特性(如权限)和所有权连接,以及可以附加到他们的证书。用户可以被赋予权限来执行存储过程而不必直接对存储过程中引用的对象具有权限。(5)存储过程允许模块化程序设计。存储过程一旦创建,以后可以在程序中任意次使用这可以改进应用程序的可维护性,并允许应用程序统一访问数据库。(6)存储过程可以减少网络通信流量。一个需要数百行SQL语句代码的操作可以通过一条执行过程代码语句来执行而不需要网络中发送数百行代码。(7)存储过程可以增强应用程序的安全性。参数化存储过程有助于保护应用程序不受SQLInjection攻击。由此看来使用存储过程既符合此次任务的功能效率需求,也符合其安全型需求。数据库访问CCB.Data类库的实现考虑到比对数据来自于用户上传的Excel表格,所以我们使用技术的允许不同数据源与数据库交互技术来实现这一功能。ADO.NET是一组用于和数据源进行交互的面向对象类库。通常情况下,数据源是数据库,但它同样也能够是文本文件、Excel表格或者XML文件。ADO.NET允许和不同类型的数据源以及数据库进行交互。然而并没有与此相关的一系列类来完成这样的工作。因为不同的数据源采用不同的协议,所以对于不同的数据源必须采用相应的协议。一些老式的数据源使用ODBC协议,许多新的数据源使用OleDb协议,并且现在还不断出现更多的数据源,这些数据源都可以通过.NET的ADO.NET类库来进行连接。由于系统选用的是SQLServer数据库,主要关注于对用于SQLServer的.NETFramework数据提供程序和OLEDB的.NetFramework数据提供程序加以封装,生成数据库封装类库CCB.Data,类图如图4-1:图4-1CCB.Data类图主要对象介绍:(1)DataBaseType枚举:定义三种数据库访问类型:MSSQLServer,Oracle,OleDB。(2)DataAccess接口:提供对数据库访问功能的基本接口。为了屏蔽不同数据库间的差异。包含三个属性及七个方法的抽象定义:DatabaseTypeDatabaseType属性:获取数据库类型。IDbConnectionDbConnection属性:获取数据库连接。IDbTransactionBeginTransaction属性:数据库事务。voidOpen方法:打开数据库连接。voidClose方法:关闭数据库连接。intExecuteNonQuery方法:执行语句;返回受影响的行数;有四种重载形式。DataSetExecuteDataset方法:执行语句;以DataSet的形式返回的结果;有十六种重载方式。IDataReaderExecuteReader方法:执行语句;以DataReader的形式返回的结果;有四种重载方式。objectExecuteScalar方法:执行语句,返回结果的第一行第一列,忽略额外的利用列或行;具有四种重载形式。XmlReaderExecuteXmlReader方法:执行语句,以XmlReader的形式返回的结果;具有四种重载形式。(3)DatabaseProperty结构类型:包括数据库连接字符串,数据库类型,用户名,密码。(4)DBFactory抽象类:数据库抽象工厂,仅有一个CreateDataAccess方法,用于DatabaseProperty结构类型对象参数来创建OleDbDataAccess对象。(5)AbstractDataAccess抽象类:继承自DataAccess接口,除ExecuteNonQuery、ExecuteDataSet、ExecuteReader、ExecuteScalar和ExecuteXmlReader方法的各一个具有最多参数的方法重载形式外,实现了DataAccess接口中其它属性和方法内容。这里要说明的是ExecuteNonQuery、ExecuteDataset、ExecuteReader、ExecuteScalar和ExecuteXmlReader方法的其它重载的实现都是调用最多参数的方法重载形式,参数不能对齐的部分以默认值来代替,仍需对该类进一步继承和方法实现。(6)MSSqlDataAccess密封类:继承自AbstractDataAccess抽象类,将ExecuteNonQuery、ExecuteDataSet、ExecuteReader、ExecuteScalar和ExecuteXmlReader方法的最多参数的方法重载形式加以实现。(7)OleDbDataAccess密封类:与MSSqlDataAccess类实现机制相同。(8)OracleDataAccess密封类:与MSSqlDataAccess类实现机制相同。(9)MSSqlFactory类:继承自DBFactory抽象类,是MSSqlDataAccess实例的工厂,重写CreateDataAccess方法,返回MSSqlDataAccess类的实例。(10)OleDbFactory类:与MSSqlFactory类实现机制相同,是OleDbDataAccess实例的工厂。(11)OracleFactory类:与MSSqlFactory类实现机制相同,是OracleDataAccess实例的工厂。通用功能CCB.Common类库的实现根据面向对象设计(OOD)的思想,在银行客户比对系统的实现过程中,将一些常用的功能或方法以类(class)或类库(classlibrary)的形式加以封装。这样可以提高组件的复用率,同时也方便管理。通用处理封装通用处理包含系统中所用到的全部处理判断相关方法,比如:验证输入的数据是否符合格式、数据分页、截短字符串、加密信息等为方便调用将其封装在一起,具体情况如下表所示:表4-5CCB.Common.Common类的方法方法作用参数说明CutPage(floatint1,floatint2)计算总页数Int1数据有N行int2每页显示显示N行数据MyLeftFunction(stringmText,intbyteCount)截短子串mText要加工的字串byteCount要求长度NoHTML(stringHtmlstring)去除HTML标记Htmlstring包含HTML的源码checkobj(stringstr)测试服务器支持的对象Str服务器支持对象名称ReplaceBadChar(stringstrChar)去除非法字符串strChar原字符串MsgBox(string_Msg)警告框_Msg警告字串Alert(string_Msg)同上同上AlertConfirmAndRedircet(string_Msg,stringURL)一个含有“确定”和“取消”的警告框_Msg警告字串URL要跳转的网址AlertAndRedirect(string_Msg,stringURL)一个含有“确定”,点击以后就转到预设网址的警告框同上AlertAndClose(string_Msg)一个含有“确定”,点击关闭本页的警告框_Msg警告字串AlertAndGoBackHistory(string_Msg,intBackLong)一个含有“确定”,点击返回先前的网页警告框_Msg警告字串BackLong要倒退几步AlertAndReloadFatherPage(string_Msg)一个含有“确定”,点击后关闭自己,刷新父窗口警告框_Msg警告字串GetFocus(stringCtl_Name,Pagepage)使控件获得焦点Ctl_Name获得控件ID值pagePage类Md5hash_String(stringInputString)MD5加密InputString要加密的字串IsNumeric(stringstr)检查是否都是数字Str要检查的字串IsEmail(stringstr)检查是否正确的Email格式同上IsDate(stringstr)检查是否正确的日期格式同上BanStr(stringstr1,stringstr2)进行添加管理员操作时,将格式化以后的数据传给DAstr1新添加的字串str2原来的字串IsInteger(stringstrContent)检查传入的字串是否是整数strContent待检查字串GetInteger(stringstrContent,intdefaultValue)将传入的字符串转换为整数,如果不是则返回默认值strContent待转换的字符defaultValue转换失败的默认值配置文件相关操作封装鉴于配置文件具有方便设置,方便管理,能有效提高系统安全性,提高系统运行速度等特性,本类主要针对配置文件相关操作设置。表4-6CCB.Common.ConfigUtility类的方法方法作用参数说明GetConfigBool(stringkey)返回应用程序配置文件中的Bool类型值Key配置节点GetConfigDecimal(stringkey)返回应用程序配置文件中的Decimal类型值同上GetConfigInt(stringkey)返回应用程序配置文件中的Int类型值同上GetConfigString(stringkey)返回应用程序配置文件中的配置值同上ModifyConfig(stringstrKey,objectstrValue)修改配置节点的值strKey配置节点strValue配置节点的值AddConfig(stringstrKey,objectstrValue)添加配置节点同上DelConfig(stringstrKey)删除配置节点strKey配置节点数据库连接初始化封装数据库访问类库CCB.Data对SQL数据库的通用访问方法加以封装。在使用过程中,仍然需要针对具体数据库设置其连接字符串,类CCB.Common.DataInit主要实现此类功能,具体包含方法如下表所示(见下页):表4-7CCB.Common.DataInit类的方法方法返回值作用参数说明GetDataAccess()CCB.Data.DataAccess接口获得数据库类型和连接字符串无参数DbOpen(DataAccessDataAcc)void打开数据库连接DataAcc=Factory.CreateDataAccess(DbProperty)DbClose(DataAccessDataAcc)void关闭数据库连接DataAcc=Factory.CreateDataAccess(DbProperty)系统日志封装系统在运行过程中会出现各种异常,引发异常的原因有的是软件本身的缺陷,或者软件所在环境等因素。将异常信息保存下来有助于对系统的分析和排错的实施。ASP.NET可以借助Windows操作系统的日志记录功能记录异常,这种方式存在着如下缺点:一、需配置Windows日志记录来指定保存,操作相对繁琐;二、保存异常内容一般都是严重的错误,比如网站应用程序进程崩溃等,一般不涉及页面错误的提示。针对这个问题,将异常保存操作封装为类SysException。包含方法如下表。表4-8类CCB.Common.SysException的方法方法返回值作用参数说明SystemLog(stringmessage)void记录日志至文本文件Message要记录的内容系统加密封装为增加系统的安全性能,本系统使用系统加密的方法保证数据不会被简单的数据注入等操作所破坏,所以设置了系统字符串加密、解密的类SystemCode。具体包含方法如下表所示:表4-9类CCB.Common.SystemCode的方法方法返回值作用参数说明HDVal()voidC盘序列号无参数Encrypt(stringdatastr,stringkeystr)String对称算法加密Datastr要加密的字符串Keystr钥匙串Decrypt(stringdatastr,stringkeystr)string对称算法解密datastr要解密的字符串keystr钥匙串网站界面实现管理员登陆界面设计首先,进入比对系统后会进入如下图的管理员选择登陆界面,通过验证用户名密码和验证码之后才能正式进入系统内部。(默认管理员名称为:admin密码:123456)图5-1登录选择界面图5-2登录界面具体实现过程:提交用户名、密码以及验证码之后,Admin_Login.aspx会执行以下主要语句语句进行验证:\\下句主要是访问Common类库去除非法字符串方法,然后通过规则类BLL类库借由数据访问类库Data访问数据库Newlogin=MyclassDX.Login(MyclassBLL.FormatInputStrForAdmin_Login(UIstr1).ToString());\\返回的Newlogin为正确的用户名、验证码、密码组合if(Newlogin[2]==str2){\\验证码比对过程if(Session["VNum"]==null){lblShow.Text="<B>请刷新该页使验证码更新。</B>";return;}if(ValidateCode.Text!=Session["VNum"].ToString()){lblShow.Text="<B>填写的验证码与所给的不符</B>";return;}FormsAuthentication.RedirectFromLoginPage(Newlogin[1],false);string[]UIStr=newstring[3];UIStr[0]=UserName.Text;UIStr[1]=DateTime.Now.ToString();UIStr[2]=System.Web.HttpContext.Current.Request.UserHostAddress;MyclassDX.Add_Times(MyclassBLL.FormatInputStrForAdmin_Login_Adding_Time(UIStr));Session["AdminName"]=Newlogin[1].Trim();Session["StateID"]=Newlogin[3];Session["AdminLevel"]=Newlogin[4];Session["LoginTimes"]=Newlogin[5];Session["Department"]=Newlogin[6];System.Web.HttpContext.Current.Response.Redirect("Admin_Mains.aspx");}else{Common.MsgBox("密码错误!");return;}}语句Newlogin=MyclassDX.Login(MyclassBLL.FormatInputStrForAdmin_Login

(UIstr1).ToString()执行过程中调用了CCB.BLL类库下属Admin类执行如下语句。publicstring[]Login(stringstr1){DataSetMydataset=newDataSet();DataRowmyrow;QueryParameterCollectionparameters=newQueryParameterCollection(1);parameters.Add("@UserName",str1,DbType.String);Mydataset=MySql.ExecuteDataset(CommandType.StoredProcedure,"Admin_Admin_Login",parameters,Mydataset,null);int_int=Mydataset.Tables[0].Rows.Count;string[]aa=newstring[7];if(_int>0){myrow=Mydataset.Tables[0].Rows[0];aa[0]=_int.ToString();aa[1]=myrow["AdminName"].ToString();aa[2]=myrow["AdminPassword"].ToString();aa[3]=myrow["StateID"].ToString();aa[4]=myrow["AdminLevel"].ToString();aa[5]=myrow["LoginTimes"].ToString();aa[6]=myrow["Department"].ToString();}else{aa[0]=_int.ToString();aa[1]=0.ToString();aa[2]=0.ToString();aa[3]=0.ToString();aa[4]=0.ToString();aa[5]=0.ToString();aa[6]=0.ToString();}}在这里Admin通过类库Data实现了对数据库的访问其中语句Mydataset=MySql.ExecuteDataset(CommandType.StoredProcedure,"Admin_Admin_Login",parameters,Mydataset,null);中对SQL数据库中的Admin表的Admin_Login存储过程进行了调用,这里设置存储过程主要是为了方便调用提高效率,同时提高系统安全性。Admin_Login存储过程如下:(主要目的为查询表中数据并返回)CREATEPROCEDURE[dbo].[Admin_Admin_Login]@UserNamevarchar(50)ASselectAdminName,AdminPassword,LoginTimes,StateID,AdminLevel,DepartmentfromAdminwhereAdminName=@UserName数据文件管理界面点击主界面上的“数据文件管理”菜单下属“数据文件管理”按钮进入,如下图所示,该界面包含文件搜索、新文件导入、文件下载、文件删除等按钮。需要注意的是,新文件导入会替换旧文件和删除功能一样会在动作之前提问是否继续以防止误操作的发生,具体实现方法见下方的数据上传界面实现。图5-3数据文件管理界面数据文件上传界面点击主界面上的“数据文件管理”菜单下属“数据文件管理”按钮进入,如下图所示,该界面要求比较简单设定报告期选定文件即可上传。图5-4数据上传界面同样需要注意的是同一报告期的文件不可重复上传,会提示需要删除已存在文件才可继续。上传文件要求为必须是Excel电子表格格式.xls语句中会对其进行判断。具体语句如下:publicboolIsAllowedExtension(stringExtenName){stringcheckExtenName=ExtenName.ToLower();string[]arrExtension={".xls"};if(checkExtenName!=string.Empty){for(inti=0;i<arrExtension.Length;i++){if(checkExtenName.Equals(arrExtension[i])){returntrue;}}}returnfalse;}上传主要通过控件NeatUpload完成,上传后将在数据库创建表格读取Excel数据并按要求存放在创建表格的各个项目中,并以界面中设定的月年作为表的名称保存于数据库中。并且将上传原文件改名为上传具体时间并且保存在文件夹DBFileUpload中方便查询删除。if(this.AttachFile.ContentLength>0){try{this.AttachFile.MoveTo(SaveFileName,Brettle.Web.NeatUpload.MoveToOptions.Overwrite);if(System.IO.File.Exists(SaveFileName)){FileInfofileinfor=newFileInfo(SaveFileName);longFileSize=fileinfor.Length;\\clienttable.Admin_ClientTable_DropTable(strYearAndMonth);\\使用数据库创建表格名称为选择的年于月clienttable.Admin_ClientTable_CreatTable(strYearAndMonth);\\下方为创建表格个项过程过于繁复恕不在此过多描述object[]obj=newobject[7];obj[0]=NewName;obj[1]=FileName;obj[2]=FileSizeCounter(FileSize);obj[3]=DateTime.Now;obj[4]=strYear;obj[5]=strMonth;obj[6]=strYearAndMonth;dbfile.Admin_DBFile_Add(obj);CCB.Common.Common.AlertAndRedirect("上传文件成功!文件更名为:《"+NewName+"》。","Admin_DBFile_Manage.aspx");return;}该过程中语句dbfile.Admin_DBFile_Add(obj);会通过存储过程DBFile_Add将上传文件名称改为上传时间并保存在表格DBFile中。存储过程DBFile_Add:ALTERPROCEDURE[dbo].[Admin_DBFile_Add]@FileNamevarchar(100),@OldFileNamevarchar(100),@FileSizevarchar(200),@UploadDatedatetime,@Yearvarchar(4),@Monthvarchar(2),@YearAndMonthvarchar(6)ASinsertintoDBFile(FileName,OldFileName,FileSize,UploadDate,Year,Month,YearAndMonth)values(@FileName,@OldFileName,@FileSize,@UploadDate,@Year,@Month,@YearAndMonth)有效客户分析界面点击主界面的“数据比对”下属“有效客户分析模型”即可进入,如图所示,选定报告期和基准期即可进行对比。图5-5查询比对界面机构不同权限不同,低权限只能对自己进行比对,高权限可对自己和其他低权限单位进行比对。本系统的关键部分,方法为将数据库中指定报告期中的数据传输到生成的Excel文件之中并通过Excel文件中设置好的宏命令进行比对并产生结果供用户下载。类库CCB.UI下比对语句:protectedvoidbtnSerch_Click(objectsender,EventArgse){StringTemplateFileName=System.IO.Path.Combine(Request.PhysicalApplicationPath+Template_Path,"X3.xlsm");stringNewName=DateTime.Now.ToString("yyyyMMddhhmmss")+".xlsm";stringTempFileName=System.IO.Path.Combine(Request.PhysicalApplicationPath+Temp_Path,NewName);File.Copy(TemplateFileName,TempFileName,true);bject[]obj1=newobject[2];obj1[0]=drpThisTerm.Text;obj1[1]=drpDepartment.SelectedValue;DataSetdsThisTerm=compare.Admin_Compare_GetTerm(obj1);object[]obj2=newobject[2];obj2[0]=drpBasicTerm.Text;obj2[1]=drpDepartment.SelectedValue;DataSetdsBasicTerm=compare.Admin_Compare_GetTerm(obj2);sheet1.Cells.ImportDataTable(dsThisTerm.Tables[0],false,"A2");Worksheetsheet2=workbook.Worksheets["基期数据"];//工作表sheet2.Cells.ImportDataTable(dsBasicTerm.Tables[0],false,"A2");workbook.S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论