(完整版)数据库毕业课程设计(实例+论文)

巡山小妖精
512次浏览
2021年02月11日 20:59
最佳经验
本文由作者推荐

-

2021年2月11日发(作者:兔子帮游戏)



3











[


运网物流管理系统


]




开发文档





[


版本:


2.0]






级:


2003


级计算机科学与技


指导老师:



何迎生



二〇一七年八月二十八日星期一
































《运网物流管理系统》是一个基于



开发的< /p>


Web


物流管理管理


系统。作为


BS


结构的


web


数据 库管理系统,本系统具有所有


BS


结果系统

的优点,同时又具有



的高效的优势。



从技术上说,本系统采用了


C#


编 写,充分利用



强大的组件


DATAGR ID



结合



对 任务书中的物流管理的


SQL


Server2000


数据库


进行管理。通过本系统可以对数据库执行添加、删除、修改、查询 等全面


的操作。系统支持分页功能,能支持大量数据的存储。我利用具有高安全


性的


Cookie


作为安全校验的依据,


对用户的权限进行审核,


提供系统的安


全保障 。



从功能上说,


本系统主要分为


2


大模块:



用户 登陆模块和数据操作模


块。通过用户登陆模块能对用户身份进行核实和验证,通过数据操 作模块


能对物流系统的相关信息进行操作,添加删除修改在一个页面内完成,直


观简洁。



作为课程设计,本系统达到了设计任 务的基本要求,并在其上才用了


更先进的语言,提供了更强大的扩展能力和更好的执行效 率,作为一个完


善的系统的雏形,本系统只要进入软件开发的螺旋法则,不久之后就可以


进化为一个成熟的,能让最终用户所接受的系统。



此次课程设计内容则是以


c#


作为开发语言,编写



程序,


c#


是一门全新的语言,具有更强大的编辑和操作能力,在此过程中,我 又开


始了认真的从无到有的学习,通过锲而不舍的实践操作和对各种相关书籍

< p>
的钻研,终于理解了


c#


的语言,并迅速开发出了 本系统。



在学习和实践的过程中,我充分体会到了

< p>
c#



.Net


技术的强 大,在


学习的过程中,我认识了几个来自


Microsoft


社区的


MVP


,在通过和他们


交流和认真学习他们编写的经验文章后,我已经能更好的理解


.Net


平台



的运行机制,从内核这个层次认识到了


Microsoft


给作为程序员的我们带


来了什么。


< /p>


本文关于运网物流管理系统的设计是在何迎生老师的指导下完成的。


经过一个学期的设计,我们基本完成了任务。设计过程中,何迎生老师给


予了我们极大 的帮助与鼓励,


在此,


我们对他的悉心指导表示衷心的感谢


!



关键字:运网物流管理


,C#,, BS, Web





第一章







在新的世纪里,信息技术迅猛发展 ,而网络技术和数据库技术又是信


息技术最主要的核心。于是,基于

Web


的数据库也就应运而生了。


< br>随着


InternetIntranet


技术的发展,< /p>


开发基于


Web


的应用程序势在必


行,


数据库技术更是需要和


Web

< p>
数据相结合,


才是更为广阔的前景。



作为微软推出的新兴


Web


应用程序开发技术,在数 据库应用方面发挥着越


来越重要的作用。


Internet


的普及和应用使人们的现代生活方式发生了深刻的变化,



在各大企业也加快了信息化进程,并且都建立了自己的企业网。这为企 业


网络现代化创收提高效率提供了必备的物质基础。企业总是处于新技术的


最前沿地带,于是一个基于网络管理的应用系统的开发也正蓬勃发展并发


挥着 巨大的作用。



基于以上原因,本文提出了一种网上实现物流管 理系统,它能很好的


解决以上的问题。它改变了以往物流的运作方式,而是采用网上入港 和出



港,极大地便捷了企业的管理层了解企业的运行和业务状 态显著地提高了


工作效率。系统引用了



这一具有强大功能、用于


Web


开发的全新

框架。



在系统重处于操作系统内核与应用程序之间,使得应 用程


序可以更好地利用操作系统提供的功能,并使得应用程序的开发更快、更

< p>
简单。


本系统采用


BS


模 式,


其最根本的目的是让在企业的管理层便捷查看


企业运行状态


,


操作业务员入港出港操作


,


财务统计等,


并且具有操作方便,


响应快捷等优 点。



第二章



系统概要设计



物流管理系统,在不同 的物流公司有着自身的特殊性,公司的大小不同,


主要面对对象不同,则业务关系也相对 的不同,运网物流管理系统


v2.0


版主要针对的是中小型物流 公司。帮助其实现现代化信息化的管理,由于


时间有限,整个系统分阶段开发,本次开发 为第一阶段,主要实现系统的


出港制单、报表打印、进港收货确认、系统的管理员增加、 删除、修改等


功能。房管理、同行管理、统计分析等方面为第二阶段设计,在此不做介< /p>


绍。



2



1


用户总体业务结构









物流管理系统,包括主要部分:进港业务、出港业务、客户管 理、


同行管理、统计分析、进港财务、出港财务、系统设置。各业务包括的主

< p>
要内容有:


(在此只介绍第一阶段设计)









①出港业务:本公司操作员完成客 人所要托运的货物的表单制作,


输入货物的基本信息,托运人基本资料和接收人基本资料 ,然后打印出报


表与客人作为托运凭证。








②进港业务:


公司操作员接收货物信 息,


并确认货物信息中的条形码,


确认到货,并通知收货人接受 货物。








③系统管理:

管理员在此管理页面中管理用户,


增加用户,


设置用户



权限、输入和修改管理员基本资料,修改个人的密码。



2



2


总体安全要求



1



保密性




机密或敏感数据库在存储过程、处理、传输过程中要保


密,确保 用户在授权后才能访问。



2


、完整性



保证系统中的信息处在一种完整和没有受到损害,防止


因非授权访问、部件故障或其它 错误而引起信息篡改、破坏或丢失。企业


建站数据库中。系统管理员可以访问注册用户数 据库,系统管理员分为不


同的权限。对不同的管理员有不同的权限。如分为市场部人员、 用户管理


员、财务管理员、超级管理员。不同权限的工作人员登录后,操作权限不


同。以适合实际应用的需求,如:市场部人员只能查看用户名单和联系方


法;财务管理员可以为付款用户开通网站;用户管理员可以对用户资料进


行修改、删除 操作;超级管理员可以对管理员进行管理。注册用户只能对


自己的数据库进行管理。



3


、可靠性



保障系统在复杂的网络环境下提供持续、可靠的服务。



一、应用背景:



1.1


简介



本系统作物流解决方案系列软件之一的运输管理系统,


系统设计的目标是协助公


路运输企业迅速发展成为以本地向外辐射,具有强大的多式联运能力的物流服务商。


运网物流在进行运输管理物流系统的设计规划的过程中,


基于以下指导思想:


按尽可


能低的总成本来创建顾客目标价值。因此,物流系统必须 具有高度的客户反应能力,


同时能控制作业成本的变化



运网物流管理系统是吉首大学运网物流自主开发的适用


于广泛的公路运 输企业、货代配载和第三方物流企业的运输管理系统


.


1.2


背景



使用户和项目人员明确系统的功能、应用范围。




1.3


定义



Code 1.1


(工作室自定义)



二、系统概要分析:






系统


UM L


用例模型



系统的功能性需求



功能序




功能名称



功能说明



1


2


3


4


5


进港业务



出港业务



财务管理



统计分析



系统管理



包含对出港制单,出港调度,货物装配,查找,生成报表



包含对进港受理,到货确认



业务财务统计



暂没实现



包含操作员的增加


,


删除


,


权限的分配< /p>



系统的非功能性需求



A:


用户界面需求



简洁、易用、易懂,美观、大方、标准,具备一定的兼容性。



B:


软硬件环境需求



软件环境:



客户端

< br>:


兼容当前安装


IE6.0



Windows


操作系统。



服务器


:


支持


.NET



Windows2000


服务版或< /p>


Windows2003 Server




硬件环境:


586

< br>以上计算机,打印机等。



C:



软件质量需求



易用、健壮、兼容性好、运行稳定、有一定安全保障



第三章



系统总体设计



运网物流管理系统是满 足中小型物流公司对货物信息管理要求,采用


Microsoft Visual Studio .NET 2003+SQL Server 2000(


数据库


)


设计,程


序可运行于


Windows 2000xp2003



Windows NT


及更高版本中所有支持



的网站服 务器中。用户输入特定的网络


IP


或域名,可以通过互联


网络访问。



3


.< /p>


1


系统体系结构



运网物流管理系统采用


BS


多层结构的数据库应该设计,


系统分为:



户端、服务器、


Web


服务器、数据库服务器。基工作过程为:


< /p>


①客户端的电脑输入


IP


地址执行应用程 序,


连接到


Web


服务器,

< p>
再由


WEB


服务器与服务器连接。客户端不处理企 业核心逻辑,只拥有部分应该


逻辑。减少负载。




Web


服务器接收并处理浏览器的网页请求,并调 用应用服务器的应


用程序,接收处理结果,并回送客户端。



③应用服务器处理业务逻辑,接受输入,处理后返回结果。


< /p>


④数据库服务器处理业务数据,负责管理对数据的读写和维护,以及


数据库的数据访问权限。



3



2


系统软件开发平台



3



2



1


数据库管理系统选择



Microsoft SQL Server 2000


中文版是基于客户端服务器模 式


的新一代大型数据库管理系统(


DBMS

),它在电子商务、数据仓库和数据


库解决方案等应用中起着重要的核心作用,可为 企业的数据管理提供强大



的支持,对数据库中的数据提供有效 的管理,并采用有效的措施实现数据


的完整性及数据的安全性。



3



2



2


开发工具选






是由微软公司推出的用于

< p>
Web


应用开发的全新框架,


< br>.NET


框架


(即


.NET < /p>


Framework



的组成部分,


它从现有的


ASP(Active


Server Pages,


活动服务器页

)


结构体系上跨出了一大步,是对传统


ASP


技术的重大升级和更新。



是建立在

< br>.NET


框架的公共语言


运行库上的编程框架,


可用于在服务器上生成功能强大的


Web


应用程


序。



微软公司的

.NET


框架是继


ActiveX


技术之后,于


2000


年推出的


用于构 建新一代


Inetnet


集成服务平台的最新框架,


这种集成服务平


台允许各各系统环境下的应用程序通过因特网进行通信和 共享数据。


目前,因特网服务平台亟待解决的重要问题是系统间的互通性问题,


一些相关协议如


XML



eXtensible Markup Language,


可扩展标记语

< p>
言)



SOAP



Simple Object Access Protocol,


简 单对象存取协议)


等,


.NET


平台将 对这些协议提供支持,


其意义可与当年


Windows


平台


推出的意义相提并论,


微软公司将其称为< /p>



.NET


战略”



也就是说,


.NET


的最终目的就 是让用户在任何地方、任何时间,利用任何设备都能访


问所需的信息、文件和程序。用户 不需要知道这些文件放在会地方,


只需要发出请求,


然后只管接 收即


sk


,


而所有后台的复杂性是完 全屏


蔽起来的。


同时,


对于开发人员来 说,


更容易建立


Web


应用程序和


Web


服务,进一步简化对应用程序的开发。



.NET


框架具有两个主要组件:公共语言库和

< p>
.NET FrameWork



库。公共语言运 行库是


.NET


框架的基础。从层次上来看,

< br>.NET


框架







< br>组














Common


Language



Runtime,CLR


或称公共语言运行库)


服务框架



Services


Framework



和两类应用模板 。两类应用模板包括传统的


Windows


应用程序模板



Windows


表单)和基于


ASP.


NET


的面向


W eb


的应用程序模板(


Web


表单和< /p>


Web


服务)


,其结构如图所示。




Visual Studio .NET


是用于快速生成企业级


Web


应 用


程序和高性能桌面应用程序的工具。


Visual Studio


包含基于组件的


开发工具


(如


Visual


C#



Visual


J#



Visual


Basic



Visual


C++




以及许 多用于简化基于小组的解决方案的设计、


开发和部署的其他技


术 。



Visual Studio


支持


Microsoft .NET Framework< /p>


,该框架提供公


共语言运行库和统一编程类;


使用这些组件来创建



Web


应用程序和


XML Web services



MSDN Library


也包括在内,它


包含这些开发工具的所有文档。


< /p>


3



2



3


系统总体功能模块




运网物流管理系统总共划分为:用户登陆模块、进港业务 模块、出


港业务模块、客户管理模块、同行管理模块、统计分析模块、进港财务模


块、出港财务模块、系统设置模块。如图(


3-1

)所示



3


3


系统需求描述



3



3



1


运网物流管理系统数据流图:



系统流程图



3



3



1


运网物流管理系统数据字典:




现只给出运网物流管理系统第一阶段数据字典




数据流名:


(出港管理)输入请求






源:需要托运货物的物住








向:进港业务





成:


托运业主


ID


(自动产生)


+


托运业主身份证号码


+


托运业


主的姓名


+


托运业主的单位名称


+


业主地址


+


业主联系电话号码


+


业主邮政编


码码



数据流名:


(进港管理)查询请求









.


.


.


.




五、数据表设计


:



源:出港中输入的数据



出:数据编码



成:

< br>托运业主身份证号码


+


编码



第四章



数据库设计



E-R


模型






5.1


数据库结构及说明


< p>
物流管理系统数据表


及视图设计




管理员登陆表:



logi n










UserID


LoginName


字符类型



int


char







4


20







主键


ID


用户名




UserName


PassWord


MemberID


privilege


char


text


int


int


20


16


4


4


用户姓名



用户密码



Member


表外码



用户权限




privilege


中的值进行说明:系统管理员(


1



、财务管理员(


2



、业务管理员(


3


< br>


用户资料表:



Member










MemberID


MemberName


MemAddress


MemPhone


MemMomo



建立管理员信息用 户


视图




l ogin_VIEW










UserID


LoginName


UserName


privilege


MemAddress


MemPhone


MemberID


字符类型



int


char


char


int


char


char


int







4


20


20


4


50


12


4







主键


ID


用户名



用户姓名



用户权限



用户地址



用户电话



MemberID


字符类型



int


char


char


char


text







4


20


50


12


16







主键


ID


用户姓名



用户地址



用户电话



用户备注



Business


业务明细总表



编号



1


2


3


字段名



Bus_ID


Bus_GoodID


Bus_TakeUnitID


类型



int


int


int


说明



业务流水号(自动)



业务中货物的流水号



托运人的流水号编号



主键



外键



外健



备注




4


5


6


7


8


9


10


11


12


Bus_RecverID


Bus_FromStatio


n



Bus_FromCity


Bus_ToStation


Bus_ToCity


int


Char(20)


Char(20)


Char(20)


Char(20)


收货人的流水号



从哪个站发货



从哪个城市发货



发往哪个联网站



发往哪个城市



业务接洽时间



业务接洽操作员



业务所需费用




是否


付款


(





)


外键











Bus_AcceptTime


Datetime


Bus_AcceptOpt


Bus_Cast


Bus_IsPay


Char(20)


Float


text


13



Bus_Fisished


text


业务是否完成



默认未处理



BusinessLog


业务操作日志表






1


2


3


4


5


Log_ID


Log_BusID


Log_Time


Log_Info


Log_OptIP


int


int


Datetime


text


text


日志


ID


业务流水号



日志产生时间



日志信息



业务操作


IP


主键



外键






字段名



类型



说明



备住




CommonWrap


常用包装表



编号



1


字段名



WrapID


int


类型



说明



包装类型


ID


(自动产


生)



2


WrapName


Char(20)


包装类名称




备注



主键




3



WrapFeq


int


包装使用频率




Entrust


托运人明细表



编号



1


字段名



TakeUnit_ID


int


类型



说明



托运业主


ID


(自动产


生)



2


3


4


5


6


7


EntrustManID


EntrustMan


EntrustUnit


EntrustUnitAddr


Char(18)


Char(10)


Char(50)


text


托运业主身份证号码



托运业主的姓名



托运业主的单位名称



业主地址



业主联系电话号码



业主邮政编码码









备注



主键



EntrustUnitPhone


Char(13)


EntrustUnitPhone


Char(7)



Receiver


收货人明细表



编号



1


字段名



Recv_ID


int


类型



说明



收货业主


ID


(自动产


生)



2


3


4


5


6


RecverManID


RecverMan


RecverUnit


RecverUnitAddr


RecverUnitPhone


Char(18)


Char(10)


Char(50)


text


Char(13)


收货业主身份证号码



收货业主的姓名



收货业主的单位名称



收货业主地址



收货业主联系电话号




7


RecverUnitZone


Char(7)


收货业主邮政编码码









备注



主键




Good


货物信息明细表




编号



1


2


3


4


5


6


7


8


9


字段名



Good_ID


Good_Name


Good_WrapType


Good_Volume


Good_Weight


Good_Operator


Good_Quantity


Good_Signal


Good_Arrive


int


类型



说明



备注



货物流水号自动产生)



主键



货物名称



货物包装类型



货物所占体积



货物重量



货物录入操作员



货物数量

< p>
(


件数



货物的标签



货物是否到站










默认在途中



Char(50)


Char(50)


float


float


Char(20)


int


Char(10)


Char(10)


Login


登陆信息表



编号



1


2


3


4


5


6


字段名



UserID


LoginName


UserName


PassWord


MemberID


privilege


int


Char(20)


Char(20)


Char(16)


float


int


类型



说明



操作员


ID(


自动产生)



操作员登陆名



操作员名称



操作员登陆的密码



操作员的详细信表


ID


操作员的权限



备注



主键






外键



1


为最高级



LoginLog


登陆日志表






1


2


3


4


5



Log_ID


LogUser


Log_Time


Log_Info


Log_IP


int


Char(20)


Datetime


text


Char(10)


日志


ID


登陆用户



日志产生时间



日志信息



登陆


IP


主键







字段名



类型



说明



备住




BusinessView


视图






1


2


3


RecverManID


RecverMan


RecverUnitAddr


ManID


Man


UnitAddr


收货身份证



收货人姓名



收货人的地




4


RecverUnitPhone


UnitPhone


收货人的电




5


EntrustManID


tManID


发货人身份




6


EntrustMan


tMan


发货人的姓




7


EntrustUnitPhone


tUnitPhon


发货人的电




8


EntrustUnitAd


tUnitAddr


发货人的地




9


10


11


Good_Name


Good_Signal


Bus_ID


_Name


_Signal


_ID


货物的名称



货物的标签



业务的流水




12


13


14


15


16


17


18


Bus_GoodID


Bus_RecverID


Bus_FromStation


Bus_AcceptTime


Bus_FromCity


Bus_ToStation


Bus_ToCity


_GoodID


_RecverID


_FromStation


_AcceptTime


_FromCity


_ToStation


_ToCity


货物的


ID











主键





字段名



类型



说明



备住



发货人的


ID



发货站



业务的时间



发货的城市



目的站



目的城市









19


20


21


22


Bus_AcceptOpt


Bus_Cast


Bus_IsPay


Bus_Fisished


_AcceptOpt


_Cast


_IsPay


_Fisished


业务操作员



业务的费用



付款的方式



业务处理状








23


Good_Arrive


_Arrive


货物是否到





24


Bus_TakeUnitID


_TakeUnitID


发货人的


ID



备注


:


r :er, g: , b:ss



软件测试





登陆测试


:



主界面





生成报表




第五章







运网物流管理系统是运网开发小组 :邓彬、汪庆春、邹奇、黄键四人


在《数据库原理及设计》授课老师何迎生的带领下,经 历两个月的需求分


析设计及一个月的代码编写,已经初步完成系统的总体功能设计。初步 满


足了中小型物流管理公司的进港和出港的信息管理及系统管理员的帐号管


理。



本系统从界面设计到代码编写都为小组成员原 创,系统中注入了小组


成员的大量心血。小组成员分工如下:



汪庆春:系统需求分析


+


代码编写。< /p>






彬:系统代码编写


+


软件界面设计。





奇:系统软件测试。





键:系统相关材料收集。



小组成员首 次接触



。并运用



的知识,运用




发平台,借助


SQL


数据库。在何迎生老师的大力支持和帮助下,开发出运


网物流管理系统。对本小组各成员都有很大的激励。本次开发中,各成员


的感触都很深。系统需求阶段,小组成员汪庆春走访吉首市各大中小型物


流公司,详细记 录了如“中铁快运”公司的管理软件中的各项需求。为小


组成员后期的代码编写提供了强 有力的资料来源。在以后的代码编写过程


中,我们深深体会到了前提工作的重要,因为有 汪庆春同学的详细分析,


使我们的后期编写工作很少出现重写的情况。

< br>


编写代码过程中,小组成员也深深了解到了一个软件并非一个人,一

< p>
朝一夕可以完成的。编写系统,是要有很强的团队合作意识。这需要借助


每 个人的力量,汇集各成员的强项。才能开发出适用性强、可读性好的软


件。本次开发中, 运网小组运用


VSS6C


团队开发设计软件,加强了团队代


码编写之间的相互交流。让整个代码编写事半功倍。



测试阶段,虽事先有具体分工,但在分工的过程中也有合作。测试阶


段出现的 问题我们都争取当天解决。并做好日志工作。



当然,本次系统 开发过程中也出现了许多问题,比如小组成员大都是


首次学习


< /p>


。设计语言掌握不足。造成系统开发出现真空地带等等。




但不管如何,我们始终相信,运网开发小组不会因为第一段的 工作完


成而停止。通过第一阶段的设计。使小组成员熟悉了



语言。也了


解了整个设计过程。相信后阶段的设计将很快完成现阶段 的不足。



参考文献



[1]


但正刚


,




高级编程》


,


北京


:


清华大学出版社


,2 002


[2] Evangelos Petroutsos, Asli Bilgin,



Visual


数据 库编程》


,




:


电子工业出版


[3] [4]


王树伟


,


王蒙


,



Visual


编程指南》


,




:


电子工业出 版社


,2002


.


[5]


王兴品


,



Visu al



数据库开发典型实例》


,


北京


:


电子工业出版社


,2002


[6]


金雪云


,


焦桂英等


,




高级开发技术与范例》


,


北京


:


电子工业出版



,200 2


[7]


孟军


,

< br>王宝学


,


《精通



网络编程》


,


北京


:


人民邮电出版社


,2002


[8]


焦荐沧


,


龙晓敏


,


《深入体验




,< /p>


西安


:


西安电子科技大学出版社


,2001



:


程序 主要代码



* file:*


**


*


@author



Qingchun Wang



--


代码编写者



*


@reviewer Qingchun Wang


*


@env



*



*


using


System;


using


tions;


using


SystemponentModel;


using



--


代码审查者



DotNet Framework1.1.4


--


编译环境




using


g;


using



using


nState;


using



using


trols;


using


ntrols;


using


ty;


using


ent;


namespace


yw


{



















WebForm1


的摘要说明。





public



class


Index :


{












protected


rm Form1;


protected


x Passwd;


protected


x TxtCode;


protected


Image1;


protected


utton ImageButton1;


protected


utton ImageButton2;


protected


ErrorCode;


protected


Label1;


protected


x UserName;


protected


nection connection;











private



void


Page_Load(


object


sender, rgs e)


{



string



isDebug=tings[























































}


#region


Web


窗体设计器生成的代码



override



protected



void


OnInit(EventArgs e)


{






CODEGEN:


该调用是


Web


窗体设计器所必需的。




if


(isDebug==


{






}


if


(!


this


.IsPostBack)


{





} < /p>


this


.=


this

< br>.=


this


.=


如果为调试程 态刚设置一下假登陆现场



ctFromLoginPage(


true


);


ct(


false


);




























}






设计器支持所需的方法


-


不要使用代码编辑器修改




此方法的内容。





private



void


InitializeComponent()


{



this


. +=


new



InitializeComponent();


base


.OnInit(e);


l ickEventHandler(


this


.ImageBu tton1_Click);





this


. +=


new



lickEventHand ler(


this


.ImageButton2_Click) ;











}


#endregion


private



void


ImageButton1_Click(


object


sender,


this


.Load +=


new


andler(


this


.Page_Load);


lickEventArgs e)














{







string


validateCode;


try


{




Object code=Session[


得到验证码



validateCode=ng();


































































}


else



{










if


(!=validateCode)


{




}


else


{


判断用户是否已经正确 输入验证码


,


错误则抛出异常



throw



new


Exception(


验证码 有错


!


throw



new


Exception(


用户名 或密码不能为空












if< /p>


(


this


.==


this


.==


{



判断用户是否已经输入了用户或密码


,


没有输入用户 名或密码刚抛出异


if


(CheckLogin((),()) ==


true


)



























{





All();


Session[


登陆 成功


,


跳转到管理首页



ctFromLoginPage(


this


.,


true


);












ct(


false


);




















































}


private



void


ImageButton2_Click(


object


sender,










}


catch


(Exception ex)


{





}


显示错误信息



=










}








}


}


else


{




}


登陆错误抛出异常



throw



new


Exception(


用户名 或密码有错



lickEventArgs e)
















{







*


清空


*


this


.=


this


.=

< p>
this


.=


this


. =




=sswordForStor ingInConfigFile(Passwd


.Text,




























}


*


检查登陆


*


private



bool


CheckLogin(


string


StrUser,


string


StrPwd)


{











SqlCommand cmd=


null


;


SqlDataAdapter ad=


null


;


DataSet ds=


null


;


try


{






if


(CheckCanLogin ()==


true


)


{




string



strcon=tings[














文件中加载数据库连接字符串

< p>


string


strSQL=


[LoginName]='












组装登陆查询


Sql


语句



string



strPass=sswordForStoringInConfigFile((),








由于数据库里存储用户密码是用< /p>


MD5


算法加密的


,

所在以这儿把用户输


入的表单中的数据进行一次


MD5


加密












































connection =


new


SqlConnection(strcon);


实例化数据库连接对象



();


打开数据库连接对象



cmd=


new


SqlCommand(strSQL,connection);


实例化

< p>
SqlCommand


对象



用于执行数据库查询命令



ad=


new


SqlDataAdapter(cmd);


实例化数据库连接桥

(.NET


里的采用的是从数据库中取得数据和记录集


建立 管道


)








































































这个适配器是数据记集和数据库的连接管道



ds=


new


DataSet();


实例化记录集对象



(ds,


把从数据库中的数据填充到记录集的缓冲区



if


([0].==0)


{




}


else


{




从记录集中取出用户名和密码



string



如果记录集为空


,


刚表示没有这个用户抛出异常



throw



new


Exception(


用户名 或密码错误



user=(


string


)[








string



pwd=(


string


)[





























































































if


(StrUser!=())


{



}


else


{










if


(()!=strPass)


{



}


else


{




*


登陆成功后获取其权限


*


int



throw



new


Exception(


密码错 误



throw



new


Exception(


用户名 错误



Permission=(


int


)[

























































}








}


*



session


里保存权限


*


Session[


*


写日志


*


WriteLog(Str User,


正常登陆



*


登陆成功返回真


*


return



true


;



























































}


catch


(Exception ex)


{



=



}


else


{








}


*


记录日志


*


WriteLog(StrUser,


输入密码错误达到三次



*


输入登陆所需信息连三次错误不能再进行登陆


!


弹出消息框给用户


*


S howMessage(


您已经输入出错达到


3



!


不能再登陆



*


抛出异常


*


throw



new


Exception(


你已经 三次输入错误



}







color='red'>


*e*


+































}


finally


{







*


释放 对象


!


把资源返回给系统


*


return



false


;



();


e();


e();




























































}


*


检查输入错误是否已经达到三次


*


private



bool


CheckCanLogin()


{
















Object code=Session[


int


iNumber=0;


if


(code==


null


)


{





}


else


{






iNumber=(


int


)code;


if


(iNumber>2)


{



return



false


;


iNumber=1;


Session[


return



true


;







}



e();

if


(connection!=


null


)


{



}


();



















































}


private



void


ShowMessage(


string


strMsg)


{



}


private



void


WriteLog(


string


user,


string


LogInfo)


{







SqlConnection con=


null


;


SqlCommand cmd=


null


;


try


{



string



(









}


}


else


{





}


iNumber++;


Session[


return



true


;


strcon=tings[


















string


ipAddr=Variables[


DateTime Time=;


*


组装日志插入


SQL


语句


*


string


strSql=



values(














































































}


catch


(Exception ex)


{



=


st rSql=strSql+


strSql=strSql+


st rSql=strSql+


strSql=strSql+


st rSql=strSql+


con=


new

SqlConnection(strcon);


实例化数据库连接对象



();



打开数据库连接对象



cmd=


new


SqlCommand(strSql,con);


int


EffectNum=eNonQuery();


if


(EffectNum==0)


{



}



throw



new


Exception();


color='red'>


*e*


+










}


finally


{







释放


cmd


对象







e();






if< /p>


(con!=


null


)






{







();


e();






}










}




}






}


}


*file:*


**


*



*


*


*


@author



Qingchun Wang



--


*


@reviewer Qingchun Wang


--


*


@env



DotNet Framework1.1.4


--


*


*


*



*


**


代码编写者



代码审查者



编译环境


-


-


-


-


-


-


-


-