【計算機軟件畢業(yè)設(shè)計】銀行客戶比對系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
【計算機軟件畢業(yè)設(shè)計】銀行客戶比對系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
【計算機軟件畢業(yè)設(shè)計】銀行客戶比對系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
【計算機軟件畢業(yè)設(shè)計】銀行客戶比對系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
【計算機軟件畢業(yè)設(shè)計】銀行客戶比對系統(tǒng)的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

河北農(nóng)業(yè)大學(xué)畢業(yè)論文題目:銀行客戶比對系統(tǒng)的設(shè)計與實現(xiàn)摘要金融業(yè)是典型的高級服務(wù)業(yè),客戶是最重要的資源,如何有效的管理客戶信息并準(zhǔn)確把握客戶情況,成為了當(dāng)下眾多銀行面對的新課題。本文主要對銀行客戶比對系統(tǒng)的設(shè)計與實現(xiàn)進行討論,本文基于ASP.net技術(shù),使用C#語言配合MicrosoftVisualStudio2010開發(fā)工具和MicrosoftSQLServer2008R2數(shù)據(jù)庫論述了如何利用設(shè)計系統(tǒng)實現(xiàn)用戶登錄、用戶管理、數(shù)據(jù)上傳、數(shù)據(jù)查詢、數(shù)據(jù)下載比對等功能的實現(xiàn),本文給出了系統(tǒng)實際運行界面,以及數(shù)據(jù)庫相關(guān)設(shè)計關(guān)系圖盡可能滿足了客戶的實際需求。關(guān)鍵字:銀行;比對;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 國內(nèi)外現(xiàn)狀分析 11.3 論文組織結(jié)構(gòu) 22 相關(guān)技術(shù)及工具 32.1 C#語言 32.2 ASP.NET 32.3 SQLServer2008 42.4 VisualStudio2010 53 系統(tǒng)的需求及可行性分析 63.1 系統(tǒng)可行性 63.1.1 技術(shù)可行性 63.1.2 經(jīng)濟可行性 63.1.3 運行可行性 63.2 系統(tǒng)需求分析 73.2.1 系統(tǒng)功能需求 73.2.2 開發(fā)運行環(huán)境 73.2.3 其他系統(tǒng)需求 73.2.4 系統(tǒng)具體功能要求 84 系統(tǒng)設(shè)計 94.1 系統(tǒng)結(jié)構(gòu)設(shè)計 94.2 系統(tǒng)數(shù)據(jù)庫設(shè)計 94.3 數(shù)據(jù)庫訪問CCB.Data類庫的實現(xiàn) 144.4 通用功能CCB.Common類庫的實現(xiàn) 164.4.1 通用處理封裝 164.4.2 配置文件相關(guān)操作封裝 174.4.3 數(shù)據(jù)庫連接初始化封裝 174.4.4 系統(tǒng)日志封裝 184.4.5 系統(tǒng)加密封裝 185 網(wǎng)站界面實現(xiàn) 195.1 管理員登陸界面設(shè)計 195.2 數(shù)據(jù)文件管理界面 225.3 數(shù)據(jù)文件上傳界面 235.4 有效客戶分析界面 256 結(jié)論 29參考文獻(xiàn) 30致謝 31

緒論課題背景和意義改革開放以來,中國金融業(yè)對外開放步伐明顯加快,按照加入世界貿(mào)易組織時的承諾開放了對外資銀行、外資保險公司的地域限制和業(yè)務(wù)限制。中國現(xiàn)代化支付系統(tǒng)建設(shè)也取得了突破性進展,基本建立了覆蓋廣泛、功能齊全的跨市場、跨境支付結(jié)算體系,人民幣在香港和澳門實現(xiàn)清算安排。以網(wǎng)絡(luò)為基礎(chǔ)的電子資金交易系統(tǒng)不斷完善,實現(xiàn)了銀行間債券市場券款對付(DVP)清算,為投資者提供了安全、高效、便捷的資金交易和清算服務(wù)。中央銀行建立和完善了一系列的金融監(jiān)控信息系統(tǒng),支付清算、賬戶管理、征信管理、國庫管理、貨幣金銀管理、反洗錢監(jiān)測分析、金融統(tǒng)計監(jiān)測管理信息等和辦公政務(wù)實現(xiàn)了信息化。商業(yè)銀行的綜合業(yè)務(wù)處理、資金匯兌、銀行卡服務(wù)等基本實現(xiàn)了計算機聯(lián)網(wǎng)處理和數(shù)據(jù)集中處理,自助銀行、網(wǎng)絡(luò)銀行、電子商務(wù)、網(wǎng)上支付結(jié)算等新型金融服務(wù)迅速發(fā)展。金融業(yè)是典型的高級服務(wù)業(yè),客戶是最重要的資源,如何有效的管理客戶信息并準(zhǔn)確把握客戶需求,成為了當(dāng)下眾多銀行面對的新課題,隨著時代的進步,銀行企業(yè)的客戶也逐漸變得多起來;當(dāng)今資金流動越來越頻繁,使得銀行管理工作也變的越來越復(fù)雜。以前人們使用傳統(tǒng)的人工方式管理客戶信息,這種管理方式存在著許多缺點,如效率低下、保密性差等。另外,時間一長將產(chǎn)生大量的文件和數(shù)據(jù),這對于信息的查找、更新和維護來說都帶來了不少的困難。所以,如何有效率地管理比對好銀行客戶信息,成為銀行管理中一個重要的問題。如果能實現(xiàn)管理的自動化,無疑將給銀行管理帶來很大的方便。銀行客戶比對系統(tǒng)也根據(jù)這一需求應(yīng)運而生。國內(nèi)外現(xiàn)狀分析目前,最常用的動態(tài)網(wǎng)頁開發(fā)的語言有ASP(Active

Server

Pages),JSP(JavaServer

Pages),PHP

(Hypertext

Preprocessor)。其中ASP所具有的強大的安全性和適應(yīng)型。使它可以應(yīng)用在幾乎全部的平臺上。ASP.NET是在服務(wù)器上運行的編譯好的公共語言運行庫代碼。與被解釋的前輩不同,ASP.NET可利用早期綁定、實時編譯、本機優(yōu)化和盒外緩存服務(wù)。這相當(dāng)于在編寫代碼行之前就顯著提高了性能,同時,ASP.NET框架補充了VisualStudio集成開發(fā)環(huán),再加上由于ASP.NET基于公共語言運行庫,因此Web應(yīng)用程序開發(fā)人員可以利用整個平臺的威力和靈活性。.NET框架類庫、消息處理和數(shù)據(jù)訪問解決方案都可從Web無縫訪問。ASP.NET也與語言無關(guān),所以可以選擇最適合應(yīng)用程序的語言,或跨多種語言分割應(yīng)用程序。因為m$給封裝了很多控件以及很多現(xiàn)成的模式的緣故,網(wǎng)站的建立速度很快,但是因為推出時間不長,大型的應(yīng)用還比較少,大型應(yīng)用沒有很多案例可以借鑒,但并不能說明不適合做大型應(yīng)用。msnspaces正是依靠技術(shù)制作。而的缺點是基本只能在微軟開發(fā)平臺上運行良好,雖然有其他平臺版本但實際存在于其他平臺的應(yīng)用數(shù)量幾乎為零,平臺的局限性嚴(yán)重影響了的發(fā)展[1]。隨著計算機技術(shù)飛速發(fā)展,信息技術(shù)全面地滲透到人類社會的各個方面,信息化成為世界和社會發(fā)展的大趨勢。企業(yè)的管理從人工到自動化、智能化和高效性。計算機在企業(yè)管理中應(yīng)用的普及,利用計算機實現(xiàn)現(xiàn)代企業(yè)客戶的管理也勢在必行??蛻羰瞧髽I(yè)的生存之本,客戶信息的資料對企業(yè)來說至關(guān)重要。為了適應(yīng)現(xiàn)代信息管理,節(jié)省人力、物力和財力,銀行業(yè)也不會成為這個例外,但是,縱觀整個應(yīng)用市場,針對銀行的應(yīng)用多為類似“銀行客戶管理系統(tǒng)”之類的基本管理系統(tǒng),真正涉足銀行客戶比對的應(yīng)用可謂是少之又少,可以說存在一個巨大的空白可供我們填充[2-4]。論文組織結(jié)構(gòu)本論文主要分六章第一章為緒論,主要論述銀行客戶比對系統(tǒng)系統(tǒng)的背景和意義,以及國內(nèi)外現(xiàn)狀。第二章為開發(fā)技術(shù)和工具的介紹,主要論述銀行客戶比對系統(tǒng)開發(fā)過程中用到的技術(shù)和工具。第三章為需求分析,主要論述從系統(tǒng)的真實需求出發(fā),對系統(tǒng)的功能性和非功能性需求的描述,以及遇到的問題和解決方案。第四章為系統(tǒng)設(shè)計,主要劃分系統(tǒng)的主要功能,以及系統(tǒng)的功能,描述數(shù)據(jù)庫表結(jié)構(gòu)及相關(guān)屬性。第五章為網(wǎng)站實現(xiàn),主要是對系統(tǒng)的主要功能的詳細(xì)描述以及實現(xiàn)過程,以及一些界面截圖。第七章為總結(jié),主要是對自己在完成畢業(yè)設(shè)計的過程中的工作的總結(jié)。

相關(guān)技術(shù)及工具C#語言C#是微軟公司在2000年7月發(fā)布的一種全新且簡單、安全、面向?qū)ο蟮某绦蛟O(shè)計語言,是專門為.NET的應(yīng)用而開發(fā)的語言。它吸收了C++、VisualBasic、Delphi、Java等語言的優(yōu)點,體現(xiàn)了當(dāng)今最新的程序設(shè)計技術(shù)的功能和精華。C#繼承了C語言的語法風(fēng)格,同時又繼承了C++的面向?qū)ο筇匦?。不同的是,C#的對象模型已經(jīng)面向Internet進行了重新設(shè)計,使用的是.NET框架的類庫;C#不再提供對指針類型的支持,使得程序不能隨便訪問內(nèi)存地址空間,從而更加健壯;C#不再支持多重繼承,避免了以往類層次結(jié)構(gòu)中由于多重繼承帶來的可怕后果[2]。.NET框架為C#提供了一個強大的、易用的、邏輯結(jié)構(gòu)一致的程序設(shè)計環(huán)境。同時,公共語言運行時(CommonLanguageRuntime)為C#程序語言提供了一個托管的運行時環(huán)境,使程序比以往更加穩(wěn)定、安全[3-5]。C#最大的優(yōu)點是C#是一種徹頭徹尾的為.NETFramework設(shè)計的語言是在移植到其他系統(tǒng)地上的.NET版本中使用的主要語言。要使諸如VB的語言盡可能類似于其以前的語言仍遵循CLR,就不能完全支持.NET代碼庫的某些功能,至少需要不常見的語法。但C#能使用.NETFramework代碼庫提供這種功能。.NET的最新版本還對C#語言進行了幾處改動,滿足了開發(fā)人員的要求,使之更加強大。C#還有以下幾個優(yōu)點:完全支持類和面向?qū)ο缶幊?,包括接口和繼承、虛函數(shù)和運算符重載的處理。定義完整、一致的基本類型集。對自動生成XML文檔說明的內(nèi)置支持。自動清理動態(tài)分配的內(nèi)存??梢杂糜脩舳x的特性來標(biāo)記類或方法。這可以用于文檔說明,對編譯有一定的影響。對.NET基類庫的完全訪問權(quán),并易于訪問WindowsAPI??梢允褂弥羔樅椭苯觾?nèi)存訪問,C#語言可以在沒有它們的條但件下訪問內(nèi)存。以VB的風(fēng)格支持屬性和事件。改變編譯器選項,可以把程序編譯為可執(zhí)行文件或.NET組件庫,該組件庫可以用與ActiveX控件(COM組件)相同的方式由其他代碼調(diào)用。C#可以用于編寫ASP.NET動態(tài)Web頁面和XMLWeb服務(wù)。應(yīng)該指出,對于上述大多數(shù)特性,VB.NET和ManagedC++也具備。但C#從一開始就使用.NET,對.NET特性的支持不僅是完整的,而且提供了比其他語言更合適的語法[6]。ASP.NETASP.NET是.NETFramework的一部分,是一項微軟公司的技術(shù),是一種使嵌入網(wǎng)頁中的腳本可由因特網(wǎng)服務(wù)器執(zhí)行的服務(wù)器端腳本技術(shù),它可以在通過HTTP請求文檔時再在Web服務(wù)器上動態(tài)創(chuàng)建它們。指ActiveServerPages(動態(tài)服務(wù)器頁面),運行于IIS(InternetInformationServer服務(wù))之中的程序[7]。ASP.NET不僅僅只是ASP3的一個簡單升級,它更為我們提供了一個全新而強大的服務(wù)器控件結(jié)構(gòu)。從外觀上看,ASP.NET和ASP是相近的,但是從本質(zhì)上是完全不同的。ASP.NET幾乎全是基于組件和模塊化,每一個頁,對象,和HTML元素都是一個運行的組件對象。在開發(fā)語言上,ASP.NET拋棄了VBSCRIPT和JSCRIPT,而使用.NETFramework所支持的VB.NET,C#.NET等語言作為其開發(fā)語言,這些語言生成的網(wǎng)頁在后臺被轉(zhuǎn)換成了類并編譯成了一個DLL。由于ASP.NET是編譯執(zhí)行的,所以它比ASP擁有了更高的效率[8]。SQLServer2008SQLServer2008在Microsoft的數(shù)據(jù)平臺上發(fā)布,幫助用戶的組織隨時隨地管理任何數(shù)據(jù)。它可以將結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化文檔的數(shù)據(jù)(例如圖像和音樂)直接存儲到數(shù)據(jù)庫中。SQLServer2008提供一系列豐富的集成服務(wù),可以對數(shù)據(jù)進行查詢、搜索、同步、報告和分析之類的操作。數(shù)據(jù)可以存儲在各種設(shè)備上,從數(shù)據(jù)中心最大的服務(wù)器一直到桌面計算機和移動設(shè)備,用戶可以控制數(shù)據(jù)而不用管數(shù)據(jù)存儲在哪里。SQLServer2008允許用戶在使用Microsoft.NET和VisualStudio開發(fā)的自定義應(yīng)用程序中使用數(shù)據(jù),在面向服務(wù)的架構(gòu)(SOA)和通過MicrosoftBizTalkServer進行的業(yè)務(wù)流程中使用數(shù)據(jù)。信息工作人員可以通過他們?nèi)粘J褂玫墓ぞ撸ɡ?007MicrosoftOffice系統(tǒng))直接訪問數(shù)據(jù)。SQLServer2008提供一個可信的、高效率智能數(shù)據(jù)平臺,可以滿足用戶的所有數(shù)據(jù)需求。SQLServer2008的主要特點:(1)可信SQLServer為用戶的業(yè)務(wù)關(guān)鍵型應(yīng)用程序提供最高級別的安全性、可靠性和伸縮性。(2)高效率為了抓住如今風(fēng)云變幻的商業(yè)機會,公司需要能力來快速創(chuàng)建和部署數(shù)據(jù)驅(qū)動的解決方案。SQLServer2008減少了管理和開發(fā)應(yīng)用程序的時間和成本。(3)智能SQLServer2008提供全面的平臺,在用戶需要的時候提供智能。SQL2008新增功能:(1)可用性增強功能:增強數(shù)據(jù)庫鏡像功能,MicrosoftSQLServer2008數(shù)據(jù)庫的可用性得到改進??梢允褂脭?shù)據(jù)庫鏡像創(chuàng)建熱備用服務(wù)器,從而提供快速故障轉(zhuǎn)移且已經(jīng)提交的事務(wù)不會丟失數(shù)據(jù)。(2)易管理性增強功能:通過增強工具和監(jiān)視功能,SQL2008數(shù)據(jù)庫引擎的易管理性得到簡化。(3)針對可編程性的增強功能:包括新數(shù)據(jù)存儲功能、新數(shù)據(jù)類型、新全文搜索體系結(jié)構(gòu)以及對Transact-SQL所作所為的許多改進和添加。(4)針對可擴展性和性能的增強功能:包含篩選信息索引和統(tǒng)計信息、新表和查詢提示、新查詢性能和查詢處理性能。(5)針對安全性的增強功能:包括新加密函數(shù)、透明數(shù)據(jù)加密及可擴展密鑰管理功能,以及針對DES算法的澄清。VisualStudio2010VisualStudio是微軟公司推出的開發(fā)環(huán)境。是目前最流行的Windows平臺應(yīng)用程序開發(fā)環(huán)境。VisualStudio2010版本于2010年4月12日上市,其集成開發(fā)環(huán)境(IDE)的界面被重新設(shè)計和組織,變得更加簡單明了。VisualStudio2010同時帶來了NETFramework4.0、MicrosoftVisualStudio2010CTP(CommunityTechnologyPreview--CTP),并且支持開發(fā)面向Windows7的應(yīng)用程序。除了MicrosoftSQLServer,它還支持IBMDB2和Oracle數(shù)據(jù)庫[8]。新功能還包括:(1)C#4.0中的動態(tài)類型和動態(tài)編程;(2)多顯示器支持;(3)使用VisualStudio2010的特性支持TDD;(4)支持Office;(5)QuickSearch特性;(6)C++0x新特性;(7)IDE增強;根據(jù)微軟發(fā)布的一份官方文檔宣稱,VisualStudio2010和.NETFramework4.0將在下面五個方面有所創(chuàng)新:(1)民主化的應(yīng)用程序生命周期管理在一個組織中,應(yīng)用程序生命周期管理(ALM)將牽涉到多個角色。但是在傳統(tǒng)意義上,這一過程中的每個角色并不是完全平等的。VisualStudioTeamSystem2010將堅持打造一個功能平等、共同分擔(dān)的平臺以用于組織內(nèi)的應(yīng)用程序生命周期管理過程。(2)順應(yīng)新的技術(shù)潮流每年,業(yè)界內(nèi)的新技術(shù)和新趨勢層出不窮。通過VisualStudio2010,微軟將為開發(fā)者提供合適的工具和框架,以支持軟件開發(fā)中最新的架構(gòu),開發(fā)和部署。(3)讓開發(fā)者提升效率從VisualStudio的第一個版本開始,微軟就將提高開發(fā)人員的工作效率和靈活性作為自己的目標(biāo)。VisualStudio2010將繼續(xù)關(guān)注并且顯著地改進開發(fā)者最核心的開發(fā)體驗。(4)適應(yīng)下一代平臺開發(fā)微軟將繼續(xù)投資于市場領(lǐng)先的操作系統(tǒng),工具軟件和服務(wù)器平臺,為客戶創(chuàng)造更高的價值。使用VisualStudio2010,將可以在新一代的應(yīng)用平臺上。(5)跨部門應(yīng)用客戶將在不同規(guī)模的組織內(nèi)創(chuàng)建應(yīng)用,跨度從單個部門到整個企業(yè)。VisualStudio2010將確保在這么寬泛的范圍內(nèi)的應(yīng)用開發(fā)都得到支持。(6)高效開發(fā)環(huán)境MicrosoftVisualStudio2010采用拖曳式便能完成軟件的開發(fā)。簡簡單單的操作便可以實現(xiàn)一個界面的生成。但拖曳的界面,也應(yīng)當(dāng)有相應(yīng)的代碼來實現(xiàn)功能。MicrosoftVisualStudio2010支持C#、C++、VB,可以快速實現(xiàn)相應(yīng)的功能[9-11]。系統(tǒng)的需求及可行性分析系統(tǒng)可行性究的目的是用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。也就是說可行性研究的目的不是解決問題,而是確定問題是否值得去解決,研究在當(dāng)前的具體條件下,開發(fā)新系統(tǒng)是否具備必要的資源和其它條件。一般說來,應(yīng)從經(jīng)濟可行性、技術(shù)可行性、運行可行性等方面分析系統(tǒng)可行性。技術(shù)可行性技術(shù)可行性要考慮現(xiàn)有的技術(shù)條件是否能夠順利完成開發(fā)工作,軟硬件配置是否滿足開發(fā)的需求等。本銀行客戶比對系統(tǒng)使用SQL2008R2數(shù)據(jù)庫和MicrosoftVisualStudio2010進行開發(fā),同為微軟出品的兩者具有非常好的相性,且新版的SQL2008更加方便用戶創(chuàng)建數(shù)據(jù)庫操作更為簡便,兩者組合堪稱最適合開發(fā)ASP.NET的工具組合,既支持交互環(huán)境,又支持編程環(huán)境,且具有向下兼容性,對數(shù)據(jù)的完整性和一致性進行控制,以保證只對有效的數(shù)據(jù)進行處理.它提供了大量的控件,這些控件可用于設(shè)計界面和實現(xiàn)各種功能,減少了編程人員的工作量,也簡化了界面設(shè)計過程,從而有效的提高了應(yīng)用程序的運行效率和可靠性.系統(tǒng)調(diào)試相對簡單,當(dāng)前的計算機硬件配置也完全能滿足開發(fā)的需求,軟件方面:由于目前單機模式相對發(fā)展成熟,故軟件的開發(fā)平臺成熟可行。因此系統(tǒng)在技術(shù)上是絕對可行的。經(jīng)濟可行性主要從對項目的經(jīng)濟上進行分析評價,一方面是支出的費用,包括設(shè)備購置費、管理和維護費用、人員工資和培訓(xùn)費等,另一個是取得的收益。此系統(tǒng)僅僅是簡單的比對系統(tǒng)且主要算法由需求方提供,實際工作量主要集中在頁面設(shè)計以及為加強效率方面所做的工作上,但是此系統(tǒng)可以減少需求方工作人員的大量工作,加快工作效率,提升銀行的服務(wù)質(zhì)量,所以,開發(fā)此程序從經(jīng)濟角度講是可行的。運行可行性在信息化時代的現(xiàn)在,單位中使用PC電腦已不是什么奇怪的事情,電腦的高效以及低出錯率使得當(dāng)今銀行中的工作人員早已熟練掌握基本的電腦操作技術(shù),且本系統(tǒng)構(gòu)造并不復(fù)雜,操作也沒有過多要求,一般工作人員沒有任何技術(shù)障礙,所以,銀行客戶比對系統(tǒng)從運行角度講是可行的。綜上所述,開發(fā)銀行客戶比對系統(tǒng)具備可行性。系統(tǒng)需求分析本系統(tǒng)為簡單的銀行數(shù)據(jù)管理系統(tǒng),方便銀行日常的數(shù)據(jù)管理比對,因此本系統(tǒng)應(yīng)達(dá)到如下目標(biāo):(1)界面簡潔友好一目了然,方便用戶操作。(2)能實現(xiàn)簡單的用戶管理,分清權(quán)限大小。(3)運行效率比較合理。系統(tǒng)功能需求(1)實用性設(shè)計出來的系統(tǒng)必須操作簡捷、簡單明了,方便前臺操作人員熟悉理解且直觀的將所需信息呈現(xiàn)在操作者面前,減少操作復(fù)雜性,同時保證信息準(zhǔn)確無誤。(2)高效性能簡單高速的運行系統(tǒng),處理信息快速,不耽誤業(yè)務(wù)辦理速度。(3)安全性在達(dá)到以上前提的同時保證系統(tǒng)的安全運行,保證存在系統(tǒng)中的信息不會丟失,故需要設(shè)計用戶權(quán)限以保證敏感信息的安全。開發(fā)運行環(huán)境開發(fā)環(huán)境:SQLServer2008R2,VisualStudio2010。運行環(huán)境:IE6.0以上瀏覽器,OFFICE2007以上版本。其他系統(tǒng)需求界面需求:表3-SEQ表格\*ARABIC1界面需求表需求名稱詳細(xì)要求整體簡介、明了窗體功能單一,一個功能盡量在單一窗體內(nèi)完成,少有嵌套窗體提示明確、無二義質(zhì)量要求:表3-SEQ表格\*ARABIC2質(zhì)量要求表需求名稱詳細(xì)要求正確性系統(tǒng)運行無誤健壯性容錯??煽啃詳?shù)據(jù)完整性約束效率有一定的效率要求易用性用戶可按系統(tǒng)提示操作清晰性無二義安全性嚴(yán)格用戶權(quán)限系統(tǒng)具體功能要求根據(jù)要求,銀行客戶比對系統(tǒng)的功能主要有:(1)管理員管理:管理員登錄、重新登錄、修改密碼、退出。(2)系統(tǒng)管理(權(quán)限要求):管理員添加、刪除、密碼重置、屬性狀態(tài)查詢。(3)數(shù)據(jù)文件管理:數(shù)據(jù)文件上傳、下載、刪除、搜索、導(dǎo)入。(4)查詢比對:比對數(shù)據(jù)查詢下載。圖圖3-1銀行客戶比對系統(tǒng)模塊圖系統(tǒng)設(shè)計系統(tǒng)結(jié)構(gòu)設(shè)計考慮到系統(tǒng)的擴展性和標(biāo)準(zhǔn)化要求,本次研究的系統(tǒng)網(wǎng)站使用三層結(jié)構(gòu)思想設(shè)計,降低層與層之間的依賴程度,區(qū)分分明,有利于后期的升級維護。三層架構(gòu)概念:所謂三層體系結(jié)構(gòu),是在客戶端與數(shù)據(jù)庫之間加入了一個中間件層,也叫組件層。三層是指邏輯上的三層,即使這三個層放置到一臺機器上。三層體系的應(yīng)用程序?qū)I(yè)務(wù)規(guī)則、數(shù)據(jù)訪問、合法性校驗等工作放到了中間層進行處理。通常情況下,客戶端不直接與數(shù)據(jù)庫進行交互,而是通過COM/DCOM通訊與中間層建立連接,再經(jīng)由中間層與數(shù)據(jù)庫進行交換[11-12]。三層結(jié)構(gòu)包括:(1)數(shù)據(jù)訪問層:主要是對原始數(shù)據(jù)(數(shù)據(jù)庫或者文本文件等存放數(shù)據(jù)的形式)的操作層,而不是指原始數(shù)據(jù),也就是說,是對數(shù)據(jù)的操作,而不是數(shù)據(jù)庫,具體為業(yè)務(wù)邏輯層或表示層提供數(shù)據(jù)服務(wù)。(2)業(yè)務(wù)邏輯層:主要是針對具體的問題的操作,也可以理解成對數(shù)據(jù)層的操作,對數(shù)據(jù)業(yè)務(wù)邏輯處理,如果說數(shù)據(jù)層是積木,那邏輯層就是對這些積木的搭建。(3)表示層:主要表示W(wǎng)eb方式,也可以表示成Winform方式,Web方式也可以表成:aspx,如果邏輯層相當(dāng)強大和完善,無論表現(xiàn)層如何定義和更改,邏輯層能完善地提供服務(wù)。根據(jù)實際情況設(shè)計銀行客戶比對系統(tǒng)的三層結(jié)構(gòu)如下:(1)數(shù)據(jù)訪問層:主要負(fù)責(zé)數(shù)據(jù)庫訪問相關(guān)功能。(2)業(yè)務(wù)邏輯層:主要負(fù)責(zé)邏輯處理。(3)表示層:用戶界面層UI。系統(tǒng)數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫在一個信息管理系統(tǒng)中占有相當(dāng)重要的地位,數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的好壞將直接對應(yīng)用系統(tǒng)的效率,以及實現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計可以提高數(shù)據(jù)的存儲效率,保證數(shù)據(jù)的完整和一致。數(shù)據(jù)庫需求分析是數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的第一階段。這個階段主要是收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)處理的流程,組成一份詳細(xì)的數(shù)據(jù)字典,為以后的進一步設(shè)計打下基礎(chǔ)。針對本實例,通過對銀行客戶比對的內(nèi)容和數(shù)據(jù)流程分析,設(shè)計的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)如下:(1)管理員屬性信息表,根據(jù)需求包含的信息有:ID、姓名、密碼、機構(gòu)名稱、郵箱、電話、登陸次數(shù)、上次登錄時間、這次登錄時間、上次退出時間、這次登陸IP地址、上次登錄IP地址、狀態(tài)、管理員級別。(2)文件報告期管理表,包含信息有:文件名、舊文件名、文件大小、上傳日、年、月、同年同期。(3)文件場景代碼表,包含信息有:ID、機構(gòu)代號、場景名稱、場景描述、權(quán)限、是否已存在、上傳文件銀行等級。(4)文件數(shù)據(jù)信息表,為保管文件比對文件設(shè)計,包含信息有:報告期、機構(gòu)編碼、場景、客戶編碼、客戶名稱、行業(yè)、規(guī)模、網(wǎng)點是否有效客戶、支行是否有效客戶、二級分行是否有效客戶、一級分行是否有效客戶、總行是否有效客戶、公司機構(gòu)客戶金融總量日均余額合計(元)、金融資產(chǎn)日均余額小計(元)、日均一般存款(元)、日均投資理財小計(元)、日均基金合計(元)、日均基金(不含建信)(元)、日均代銷建信基金(元)、日均保本理財(元)、日均非保本理財(元)、日均保險合計(元)、日均保險(不含建信)(元)、日均代銷建信保險(元)、日均國債(元)、日均賬戶金(元)、日均實物金(元)、日均信托合計(元)、日均信托(不含建信)(元)、日均代銷建信信托(元)、同業(yè)存款日均余額(元)、貸款日均余額合計(元)、日均貸款(不含信用卡透支)(元)、日均信用卡透支(元)、公司機構(gòu)客戶金融總量時點余額合計(元)、金融資產(chǎn)時點余額小計(元)、時點一般存款(元)、時點投資理財小計(元)、時點基金合計(元)、時點基金(不含建信)(元)、時點代銷建信基金(元)、時點保本理財(元)、時點非保本理財(元)、時點保險合計(元)、時點保險(不含建信)(元)、時點代銷建信保險(元)、時點國債(元)、時點賬戶金(元)、時點實物金(元)、時點信托合計(元)、時點信托(不含建信)(元)、時點代銷建信信托(元)、同業(yè)存款時點余額(元)、貸款時點余額合計(元)、時點貸款(不含信用卡透支)(元)、時點信用卡透支(元)、賬務(wù)性交易量筆數(shù)合計、柜面交易筆數(shù)、自助設(shè)備交易筆數(shù)、電子銀行交易筆數(shù)、POS交易筆數(shù)、其他交易筆數(shù)、產(chǎn)品覆蓋度、公司類存款日均余額(元)、公司類貸款日均余額(元)、小企業(yè)貸款日均余額(元)、貿(mào)易融資表內(nèi)日均余額(元)、貿(mào)易融資表外業(yè)務(wù)使用情況、保理業(yè)務(wù)日均余額(元)、保理業(yè)務(wù)中間業(yè)務(wù)收入(元)、現(xiàn)金管理業(yè)務(wù)簽約、單位客戶賬單業(yè)務(wù)使用、國內(nèi)信用證業(yè)務(wù)收入(元)、單位通存通兌業(yè)務(wù)簽約、其他單位人民幣結(jié)算業(yè)務(wù)收入(元)、債務(wù)融資工具承銷與投資銀行理財收入(元)、國際結(jié)算業(yè)務(wù)收入(元)、單位結(jié)售匯業(yè)務(wù)收入(元)、代發(fā)工資業(yè)務(wù)收入(元)、顧問咨詢業(yè)務(wù)收入(元)、保函業(yè)務(wù)收入(元)、企業(yè)年金業(yè)務(wù)收入(元)、實業(yè)投資托管業(yè)務(wù)收入(元)、證券保證金獨立存管業(yè)務(wù)簽約、企業(yè)網(wǎng)上銀行渠道簽約、現(xiàn)金管理系統(tǒng)收入(元)。在上面的實體以及實體之間的關(guān)系基礎(chǔ)上,形成數(shù)據(jù)庫中的表格以及表格之間的關(guān)系。銀行客戶管理系統(tǒng)數(shù)據(jù)庫中的各個表格的設(shè)計結(jié)果如下面的幾個表格所示。每個表格表示在數(shù)據(jù)庫中的一個表。表4-1表admin管理員信息表列名數(shù)據(jù)類型長度可否為空說明IDintNOTNULLID號碼(主鍵)AdminNamevarchar50NULL用戶名稱AdminPasswordvarchar50NULL用戶密碼Emailvarchar100NULL電子郵箱Telephonevarchar50NULL電話LoginTimesintNULL登錄時間LastLoginDatedatetime8NULL上次登錄日期ThisLoginDatedatetime8NULL此次登錄日期LastLogoutDatedatetime8NULL上次登出日期ThisIPvarchar50NULL此次登錄IPLastIPvarchar50NULL上次登錄IPStateIDintNULL機構(gòu)代碼AdminLevelIntNULL用戶級別Departmentvarchar50NULL機構(gòu)說明表4-2表DBFile文件報告期管理表列名數(shù)據(jù)類型長度可否為空說明IDintNOTNULLID號碼(主鍵)FileNamevarchar100NULL文件名稱OldFileNameVarchar100NULL舊文件名FileSizeVarchar200NULL大小UploadDatedatetime8NULL上傳日YearVarchar4NULL年MonthVarchar2NULL月YearAndMonthVarchar6NULL同年同期表4-3文件場景代碼表列名數(shù)據(jù)類型長度可否為空說明IDintNOTNULLID號碼(主鍵)RuleCodeVarchar200NULL機構(gòu)代號RuleNameVarchar200NULL場景名稱RuleIntroductionvarchar200NULL場景描述ConditionTextNULL狀態(tài)PowerIntNULL權(quán)限IsUsedIntNULL已使用[Level]IntNULL等級表4-4文件數(shù)據(jù)信息表列名數(shù)據(jù)類型長度可否為空ID(主鍵)intNOTNULL報告期varchar200NULL機構(gòu)編碼varchar200NULL場景varchar200NULL客戶編碼varchar200NULL客戶名稱varchar200NULL行業(yè)varchar200NULL規(guī)模varchar200NULL網(wǎng)點是否有效客戶varchar200NULL支行是否有效客戶varchar200NULL二級分行是否有效客戶varchar200NULL一級分行是否有效客戶varchar200NULL總行是否有效客戶varchar200NULL公司機構(gòu)客戶金融總量日均余額合計(元)money8NULL金融資產(chǎn)日均余額小計(元)money8NULL日均一般存款(元)money8NULL日均投資理財小計(元)money8NULL日均基金合計(元)money8NULL日均基金(不含建信)(元)money8NULL日均代銷建信基金(元)money8NULL日均保本理財(元)money8NULL日均非保本理財(元)money8NULL日均保險合計(元)money8NULL日均保險(不含建信)(元)money8NULL日均代銷建信保險(元)money8NULL日均國債(元)money8NULL日均賬戶金(元)money8NULL日均實物金(元)money8NULL日均信托合計(元)money8NULL日均信托(不含建信)(元)money8NULL日均代銷建信信托(元)money8NULL同業(yè)存款日均余額(元)money8NULL貸款日均余額合計(元)Money8NULL日均貸款(不含信用卡透支)(元)Money8NULL日均信用卡透支(元)Money8NULL公司機構(gòu)客戶金融總量時點余額合計(元)Money8NULL金融資產(chǎn)時點余額小計(元)money8NULL時點一般存款(元)money8NULL時點投資理財小計(元)money8NULL時點基金合計(元)money8NULL時點基金(不含建信)(元)money8NULL時點代銷建信基金(元)money8NULL時點保本理財(元)money8NULL時點非保本理財(元)money8NULL時點保險合計(元)money8NULL時點保險(不含建信)(元)money8NULL時點代銷建信保險(元)money8NULL時點國債(元)money8NULL時點賬戶金(元)money8NULL時點實物金(元)money8NULL時點信托合計(元)money8NULL時點信托(不含建信)(元)money8NULL時點代銷建信信托(元)money8NULL同業(yè)存款時點余額(元)money8NULL貸款時點余額合計(元)money8NULL時點貸款(不含信用卡透支)(元)money8NULL時點信用卡透支(元)money8NULL賬務(wù)性交易量筆數(shù)合計intNULL柜面交易筆數(shù)intNULL自助設(shè)備交易筆數(shù)intNULL電子銀行交易筆數(shù)intNULL在設(shè)計表格的同時我們也設(shè)置了大量的配套存儲過程以提升SQL的運行效率,主要原因為:(1)存儲過程可以嵌套使用支持代碼重用。(2)存儲過程可以接受與使用動態(tài)參數(shù)執(zhí)行器沖的SQL語句。(3)存儲過程比一般SQL語句執(zhí)行速度快。存儲過程在創(chuàng)建的時候已經(jīng)編譯,每次執(zhí)行不需要重新編譯,而SQL語句每次執(zhí)行都需要編譯。(4)存儲過程具有安全特性(如權(quán)限)和所有權(quán)連接,以及可以附加到他們的證書。用戶可以被賦予權(quán)限來執(zhí)行存儲過程而不必直接對存儲過程中引用的對象具有權(quán)限。(5)存儲過程允許模塊化程序設(shè)計。存儲過程一旦創(chuàng)建,以后可以在程序中任意次使用這可以改進應(yīng)用程序的可維護性,并允許應(yīng)用程序統(tǒng)一訪問數(shù)據(jù)庫。(6)存儲過程可以減少網(wǎng)絡(luò)通信流量。一個需要數(shù)百行SQL語句代碼的操作可以通過一條執(zhí)行過程代碼語句來執(zhí)行而不需要網(wǎng)絡(luò)中發(fā)送數(shù)百行代碼。(7)存儲過程可以增強應(yīng)用程序的安全性。參數(shù)化存儲過程有助于保護應(yīng)用程序不受SQLInjection攻擊。由此看來使用存儲過程既符合此次任務(wù)的功能效率需求,也符合其安全型需求。數(shù)據(jù)庫訪問CCB.Data類庫的實現(xiàn)考慮到比對數(shù)據(jù)來自于用戶上傳的Excel表格,所以我們使用技術(shù)的允許不同數(shù)據(jù)源與數(shù)據(jù)庫交互技術(shù)來實現(xiàn)這一功能。ADO.NET是一組用于和數(shù)據(jù)源進行交互的面向?qū)ο箢悗?。通常情況下,數(shù)據(jù)源是數(shù)據(jù)庫,但它同樣也能夠是文本文件、Excel表格或者XML文件。ADO.NET允許和不同類型的數(shù)據(jù)源以及數(shù)據(jù)庫進行交互。然而并沒有與此相關(guān)的一系列類來完成這樣的工作。因為不同的數(shù)據(jù)源采用不同的協(xié)議,所以對于不同的數(shù)據(jù)源必須采用相應(yīng)的協(xié)議。一些老式的數(shù)據(jù)源使用ODBC協(xié)議,許多新的數(shù)據(jù)源使用OleDb協(xié)議,并且現(xiàn)在還不斷出現(xiàn)更多的數(shù)據(jù)源,這些數(shù)據(jù)源都可以通過.NET的ADO.NET類庫來進行連接。由于系統(tǒng)選用的是SQLServer數(shù)據(jù)庫,主要關(guān)注于對用于SQLServer的.NETFramework數(shù)據(jù)提供程序和OLEDB的.NetFramework數(shù)據(jù)提供程序加以封裝,生成數(shù)據(jù)庫封裝類庫CCB.Data,類圖如圖4-1:圖4-1CCB.Data類圖主要對象介紹:(1)DataBaseType枚舉:定義三種數(shù)據(jù)庫訪問類型:MSSQLServer,Oracle,OleDB。(2)DataAccess接口:提供對數(shù)據(jù)庫訪問功能的基本接口。為了屏蔽不同數(shù)據(jù)庫間的差異。包含三個屬性及七個方法的抽象定義:DatabaseTypeDatabaseType屬性:獲取數(shù)據(jù)庫類型。IDbConnectionDbConnection屬性:獲取數(shù)據(jù)庫連接。IDbTransactionBeginTransaction屬性:數(shù)據(jù)庫事務(wù)。voidOpen方法:打開數(shù)據(jù)庫連接。voidClose方法:關(guān)閉數(shù)據(jù)庫連接。intExecuteNonQuery方法:執(zhí)行語句;返回受影響的行數(shù);有四種重載形式。DataSetExecuteDataset方法:執(zhí)行語句;以DataSet的形式返回的結(jié)果;有十六種重載方式。IDataReaderExecuteReader方法:執(zhí)行語句;以DataReader的形式返回的結(jié)果;有四種重載方式。objectExecuteScalar方法:執(zhí)行語句,返回結(jié)果的第一行第一列,忽略額外的利用列或行;具有四種重載形式。XmlReaderExecuteXmlReader方法:執(zhí)行語句,以XmlReader的形式返回的結(jié)果;具有四種重載形式。(3)DatabaseProperty結(jié)構(gòu)類型:包括數(shù)據(jù)庫連接字符串,數(shù)據(jù)庫類型,用戶名,密碼。(4)DBFactory抽象類:數(shù)據(jù)庫抽象工廠,僅有一個CreateDataAccess方法,用于DatabaseProperty結(jié)構(gòu)類型對象參數(shù)來創(chuàng)建OleDbDataAccess對象。(5)AbstractDataAccess抽象類:繼承自DataAccess接口,除ExecuteNonQuery、ExecuteDataSet、ExecuteReader、ExecuteScalar和ExecuteXmlReader方法的各一個具有最多參數(shù)的方法重載形式外,實現(xiàn)了DataAccess接口中其它屬性和方法內(nèi)容。這里要說明的是ExecuteNonQuery、ExecuteDataset、ExecuteReader、ExecuteScalar和ExecuteXmlReader方法的其它重載的實現(xiàn)都是調(diào)用最多參數(shù)的方法重載形式,參數(shù)不能對齊的部分以默認(rèn)值來代替,仍需對該類進一步繼承和方法實現(xiàn)。(6)MSSqlDataAccess密封類:繼承自AbstractDataAccess抽象類,將ExecuteNonQuery、ExecuteDataSet、ExecuteReader、ExecuteScalar和ExecuteXmlReader方法的最多參數(shù)的方法重載形式加以實現(xiàn)。(7)OleDbDataAccess密封類:與MSSqlDataAccess類實現(xiàn)機制相同。(8)OracleDataAccess密封類:與MSSqlDataAccess類實現(xiàn)機制相同。(9)MSSqlFactory類:繼承自DBFactory抽象類,是MSSqlDataAccess實例的工廠,重寫CreateDataAccess方法,返回MSSqlDataAccess類的實例。(10)OleDbFactory類:與MSSqlFactory類實現(xiàn)機制相同,是OleDbDataAccess實例的工廠。(11)OracleFactory類:與MSSqlFactory類實現(xiàn)機制相同,是OracleDataAccess實例的工廠。通用功能CCB.Common類庫的實現(xiàn)根據(jù)面向?qū)ο笤O(shè)計(OOD)的思想,在銀行客戶比對系統(tǒng)的實現(xiàn)過程中,將一些常用的功能或方法以類(class)或類庫(classlibrary)的形式加以封裝。這樣可以提高組件的復(fù)用率,同時也方便管理。通用處理封裝通用處理包含系統(tǒng)中所用到的全部處理判斷相關(guān)方法,比如:驗證輸入的數(shù)據(jù)是否符合格式、數(shù)據(jù)分頁、截短字符串、加密信息等為方便調(diào)用將其封裝在一起,具體情況如下表所示:表4-5CCB.Common.Common類的方法方法作用參數(shù)說明CutPage(floatint1,floatint2)計算總頁數(shù)Int1數(shù)據(jù)有N行int2每頁顯示顯示N行數(shù)據(jù)MyLeftFunction(stringmText,intbyteCount)截短子串mText要加工的字串byteCount要求長度NoHTML(stringHtmlstring)去除HTML標(biāo)記Htmlstring包含HTML的源碼checkobj(stringstr)測試服務(wù)器支持的對象Str服務(wù)器支持對象名稱ReplaceBadChar(stringstrChar)去除非法字符串strChar原字符串MsgBox(string_Msg)警告框_Msg警告字串Alert(string_Msg)同上同上AlertConfirmAndRedircet(string_Msg,stringURL)一個含有“確定”和“取消”的警告框_Msg警告字串URL要跳轉(zhuǎn)的網(wǎng)址AlertAndRedirect(string_Msg,stringURL)一個含有“確定”,點擊以后就轉(zhuǎn)到預(yù)設(shè)網(wǎng)址的警告框同上AlertAndClose(string_Msg)一個含有“確定”,點擊關(guān)閉本頁的警告框_Msg警告字串AlertAndGoBackHistory(string_Msg,intBackLong)一個含有“確定”,點擊返回先前的網(wǎng)頁警告框_Msg警告字串BackLong要倒退幾步AlertAndReloadFatherPage(string_Msg)一個含有“確定”,點擊后關(guān)閉自己,刷新父窗口警告框_Msg警告字串GetFocus(stringCtl_Name,Pagepage)使控件獲得焦點Ctl_Name獲得控件ID值pagePage類Md5hash_String(stringInputString)MD5加密InputString要加密的字串IsNumeric(stringstr)檢查是否都是數(shù)字Str要檢查的字串IsEmail(stringstr)檢查是否正確的Email格式同上IsDate(stringstr)檢查是否正確的日期格式同上BanStr(stringstr1,stringstr2)進行添加管理員操作時,將格式化以后的數(shù)據(jù)傳給DAstr1新添加的字串str2原來的字串IsInteger(stringstrContent)檢查傳入的字串是否是整數(shù)strContent待檢查字串GetInteger(stringstrContent,intdefaultValue)將傳入的字符串轉(zhuǎn)換為整數(shù),如果不是則返回默認(rèn)值strContent待轉(zhuǎn)換的字符defaultValue轉(zhuǎn)換失敗的默認(rèn)值配置文件相關(guān)操作封裝鑒于配置文件具有方便設(shè)置,方便管理,能有效提高系統(tǒng)安全性,提高系統(tǒng)運行速度等特性,本類主要針對配置文件相關(guān)操作設(shè)置。表4-6CCB.Common.ConfigUtility類的方法方法作用參數(shù)說明GetConfigBool(stringkey)返回應(yīng)用程序配置文件中的Bool類型值Key配置節(jié)點GetConfigDecimal(stringkey)返回應(yīng)用程序配置文件中的Decimal類型值同上GetConfigInt(stringkey)返回應(yīng)用程序配置文件中的Int類型值同上GetConfigString(stringkey)返回應(yīng)用程序配置文件中的配置值同上ModifyConfig(stringstrKey,objectstrValue)修改配置節(jié)點的值strKey配置節(jié)點strValue配置節(jié)點的值A(chǔ)ddConfig(stringstrKey,objectstrValue)添加配置節(jié)點同上DelConfig(stringstrKey)刪除配置節(jié)點strKey配置節(jié)點數(shù)據(jù)庫連接初始化封裝數(shù)據(jù)庫訪問類庫CCB.Data對SQL數(shù)據(jù)庫的通用訪問方法加以封裝。在使用過程中,仍然需要針對具體數(shù)據(jù)庫設(shè)置其連接字符串,類CCB.Common.DataInit主要實現(xiàn)此類功能,具體包含方法如下表所示(見下頁):表4-7CCB.Common.DataInit類的方法方法返回值作用參數(shù)說明GetDataAccess()CCB.Data.DataAccess接口獲得數(shù)據(jù)庫類型和連接字符串無參數(shù)DbOpen(DataAccessDataAcc)void打開數(shù)據(jù)庫連接DataAcc=Factory.CreateDataAccess(DbProperty)DbClose(DataAccessDataAcc)void關(guān)閉數(shù)據(jù)庫連接DataAcc=Factory.CreateDataAccess(DbProperty)系統(tǒng)日志封裝系統(tǒng)在運行過程中會出現(xiàn)各種異常,引發(fā)異常的原因有的是軟件本身的缺陷,或者軟件所在環(huán)境等因素。將異常信息保存下來有助于對系統(tǒng)的分析和排錯的實施。ASP.NET可以借助Windows操作系統(tǒng)的日志記錄功能記錄異常,這種方式存在著如下缺點:一、需配置Windows日志記錄來指定保存,操作相對繁瑣;二、保存異常內(nèi)容一般都是嚴(yán)重的錯誤,比如網(wǎng)站應(yīng)用程序進程崩潰等,一般不涉及頁面錯誤的提示。針對這個問題,將異常保存操作封裝為類SysException。包含方法如下表。表4-8類CCB.Common.SysException的方法方法返回值作用參數(shù)說明SystemLog(stringmessage)void記錄日志至文本文件Message要記錄的內(nèi)容系統(tǒng)加密封裝為增加系統(tǒng)的安全性能,本系統(tǒng)使用系統(tǒng)加密的方法保證數(shù)據(jù)不會被簡單的數(shù)據(jù)注入等操作所破壞,所以設(shè)置了系統(tǒng)字符串加密、解密的類SystemCode。具體包含方法如下表所示:表4-9類CCB.Common.SystemCode的方法方法返回值作用參數(shù)說明HDVal()voidC盤序列號無參數(shù)Encrypt(stringdatastr,stringkeystr)String對稱算法加密Datastr要加密的字符串Keystr鑰匙串Decrypt(stringdatastr,stringkeystr)string對稱算法解密datastr要解密的字符串keystr鑰匙串網(wǎng)站界面實現(xiàn)管理員登陸界面設(shè)計首先,進入比對系統(tǒng)后會進入如下圖的管理員選擇登陸界面,通過驗證用戶名密碼和驗證碼之后才能正式進入系統(tǒng)內(nèi)部。(默認(rèn)管理員名稱為:admin密碼:123456)圖5-1登錄選擇界面圖5-2登錄界面具體實現(xiàn)過程:提交用戶名、密碼以及驗證碼之后,Admin_Login.aspx會執(zhí)行以下主要語句語句進行驗證:\\下句主要是訪問Common類庫去除非法字符串方法,然后通過規(guī)則類BLL類庫借由數(shù)據(jù)訪問類庫Data訪問數(shù)據(jù)庫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()執(zhí)行過程中調(diào)用了CCB.BLL類庫下屬Admin類執(zhí)行如下語句。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實現(xiàn)了對數(shù)據(jù)庫的訪問其中語句Mydataset=MySql.ExecuteDataset(CommandType.StoredProcedure,"Admin_Admin_Login",parameters,Mydataset,null);中對SQL數(shù)據(jù)庫中的Admin表的Admin_Login存儲過程進行了調(diào)用,這里設(shè)置存儲過程主要是為了方便調(diào)用提高效率,同時提高系統(tǒng)安全性。Admin_Login存儲過程如下:(主要目的為查詢表中數(shù)據(jù)并返回)CREATEPROCEDURE[dbo].[Admin_Admin_Login]@UserNamevarchar(50)ASselectAdminName,AdminPassword,LoginTimes,StateID,AdminLevel,DepartmentfromAdminwhereAdminName=@UserName數(shù)據(jù)文件管理界面點擊主界面上的“數(shù)據(jù)文件管理”菜單下屬“數(shù)據(jù)文件管理”按鈕進入,如下圖所示,該界面包含文件搜索、新文件導(dǎo)入、文件下載、文件刪除等按鈕。需要注意的是,新文件導(dǎo)入會替換舊文件和刪除功能一樣會在動作之前提問是否繼續(xù)以防止誤操作的發(fā)生,具體實現(xiàn)方法見下方的數(shù)據(jù)上傳界面實現(xiàn)。圖5-3數(shù)據(jù)文件管理界面數(shù)據(jù)文件上傳界面點擊主界面上的“數(shù)據(jù)文件管理”菜單下屬“數(shù)據(jù)文件管理”按鈕進入,如下圖所示,該界面要求比較簡單設(shè)定報告期選定文件即可上傳。圖5-4數(shù)據(jù)上傳界面同樣需要注意的是同一報告期的文件不可重復(fù)上傳,會提示需要刪除已存在文件才可繼續(xù)。上傳文件要求為必須是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完成,上傳后將在數(shù)據(jù)庫創(chuàng)建表格讀取Excel數(shù)據(jù)并按要求存放在創(chuàng)建表格的各個項目中,并以界面中設(shè)定的月年作為表的名稱保存于數(shù)據(jù)庫中。并且將上傳原文件改名為上傳具體時間并且保存在文件夾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);\\使用數(shù)據(jù)庫創(chuàng)建表格名稱為選擇的年于月clienttable.Admin_ClientTable_CreatTable(strYearAndMonth);\\下方為創(chuàng)建表格個項過程過于繁復(fù)恕不在此過多描述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)有效客戶分析界面點擊主界面的“數(shù)據(jù)比對”下屬“有效客戶分析模型”即可進入,如圖所示,選定報告期和基準(zhǔn)期即可進行對比。圖5-5查詢比對界面機構(gòu)不同權(quán)限不同,低權(quán)限只能對自己進行比對,高權(quán)限可對自己和其他低權(quán)限單位進行比對。本系統(tǒng)的關(guān)鍵部分,方法為將數(shù)據(jù)庫中指定報告期中的數(shù)據(jù)傳輸?shù)缴傻腅xcel文件之中并通過Excel文件中設(shè)置好的宏命令進行比對并產(chǎn)生結(jié)果供用戶下載。類庫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["基期數(shù)據(jù)"];//工作表sheet2.Cells.ImportDataTable(dsBasicTerm.Tables[0],false,"A2");workbook.S

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論