(完整版)数据库毕业课程设计(实例+论文)
-
术
3
班
[
运网物流管理系统
]
开发文档
[
版本:
2.0]
班
级:
2003
级计算机科学与技
指导老师:
何迎生
二〇一七年八月二十八日星期一
摘
要
p>
《运网物流管理系统》是一个基于
开发的<
/p>
Web
物流管理管理
系统。作为
BS
结构的
web
数据
库管理系统,本系统具有所有
BS
结果系统
的优点,同时又具有
的高效的优势。
从技术上说,本系统采用了
C#
编
写,充分利用
强大的组件
DATAGR
ID
,
结合
对
任务书中的物流管理的
SQL
Server2000
数据库
进行管理。通过本系统可以对数据库执行添加、删除、修改、查询
等全面
的操作。系统支持分页功能,能支持大量数据的存储。我利用具有高安全
性的
Cookie
作为安全校验的依据,
对用户的权限进行审核,
提供系统的安
全保障
。
从功能上说,
本系统主要分为
p>
2
大模块:
用户
登陆模块和数据操作模
块。通过用户登陆模块能对用户身份进行核实和验证,通过数据操
作模块
能对物流系统的相关信息进行操作,添加删除修改在一个页面内完成,直
观简洁。
作为课程设计,本系统达到了设计任
务的基本要求,并在其上才用了
更先进的语言,提供了更强大的扩展能力和更好的执行效
率,作为一个完
善的系统的雏形,本系统只要进入软件开发的螺旋法则,不久之后就可以
进化为一个成熟的,能让最终用户所接受的系统。
此次课程设计内容则是以
c#
作为开发语言,编写
程序,
c#
是一门全新的语言,具有更强大的编辑和操作能力,在此过程中,我
又开
始了认真的从无到有的学习,通过锲而不舍的实践操作和对各种相关书籍
的钻研,终于理解了
c#
的语言,并迅速开发出了
本系统。
在学习和实践的过程中,我充分体会到了
c#
和
.Net
技术的强
大,在
学习的过程中,我认识了几个来自
Microsoft
社区的
MVP
,在通过和他们
交流和认真学习他们编写的经验文章后,我已经能更好的理解
.Net
平台
的运行机制,从内核这个层次认识到了
Microsoft
给作为程序员的我们带
来了什么。
<
/p>
本文关于运网物流管理系统的设计是在何迎生老师的指导下完成的。
经过一个学期的设计,我们基本完成了任务。设计过程中,何迎生老师给
予了我们极大
的帮助与鼓励,
在此,
我们对他的悉心指导表示衷心的感谢
p>
!
关键字:运网物流管理
,C#,, BS, Web
第一章
绪
论
在新的世纪里,信息技术迅猛发展
,而网络技术和数据库技术又是信
息技术最主要的核心。于是,基于
Web
的数据库也就应运而生了。
< br>随着
InternetIntranet
技术的发展,<
/p>
开发基于
Web
的应用程序势在必
行,
数据库技术更是需要和
Web
数据相结合,
才是更为广阔的前景。
作为微软推出的新兴
Web
应用程序开发技术,在数
据库应用方面发挥着越
来越重要的作用。
Internet
的普及和应用使人们的现代生活方式发生了深刻的变化,
现
在各大企业也加快了信息化进程,并且都建立了自己的企业网。这为企
业
网络现代化创收提高效率提供了必备的物质基础。企业总是处于新技术的
最前沿地带,于是一个基于网络管理的应用系统的开发也正蓬勃发展并发
挥着
巨大的作用。
基于以上原因,本文提出了一种网上实现物流管
理系统,它能很好的
解决以上的问题。它改变了以往物流的运作方式,而是采用网上入港
和出
港,极大地便捷了企业的管理层了解企业的运行和业务状
态显著地提高了
工作效率。系统引用了
这一具有强大功能、用于
Web
开发的全新
框架。
在系统重处于操作系统内核与应用程序之间,使得应
用程
序可以更好地利用操作系统提供的功能,并使得应用程序的开发更快、更
简单。
本系统采用
BS
模
式,
其最根本的目的是让在企业的管理层便捷查看
企业运行状态
,
操作业务员入港出港操作
,
财务统计等,
并且具有操作方便,
响应快捷等优
点。
第二章
系统概要设计
物流管理系统,在不同
的物流公司有着自身的特殊性,公司的大小不同,
主要面对对象不同,则业务关系也相对
的不同,运网物流管理系统
v2.0
版主要针对的是中小型物流
公司。帮助其实现现代化信息化的管理,由于
时间有限,整个系统分阶段开发,本次开发
为第一阶段,主要实现系统的
出港制单、报表打印、进港收货确认、系统的管理员增加、
删除、修改等
功能。房管理、同行管理、统计分析等方面为第二阶段设计,在此不做介<
/p>
绍。
2
.
1
用户总体业务结构
物流管理系统,包括主要部分:进港业务、出港业务、客户管
理、
同行管理、统计分析、进港财务、出港财务、系统设置。各业务包括的主
要内容有:
(在此只介绍第一阶段设计)
①出港业务:本公司操作员完成客
人所要托运的货物的表单制作,
输入货物的基本信息,托运人基本资料和接收人基本资料
,然后打印出报
表与客人作为托运凭证。
②进港业务:
公司操作员接收货物信
息,
并确认货物信息中的条形码,
确认到货,并通知收货人接受
货物。
③系统管理:
管理员在此管理页面中管理用户,
增加用户,
设置用户
p>
权限、输入和修改管理员基本资料,修改个人的密码。
2
.
2
总体安全要求
1
、
保密性
机密或敏感数据库在存储过程、处理、传输过程中要保
密,确保
用户在授权后才能访问。
2
、完整性
保证系统中的信息处在一种完整和没有受到损害,防止
因非授权访问、部件故障或其它
错误而引起信息篡改、破坏或丢失。企业
建站数据库中。系统管理员可以访问注册用户数
据库,系统管理员分为不
同的权限。对不同的管理员有不同的权限。如分为市场部人员、
用户管理
员、财务管理员、超级管理员。不同权限的工作人员登录后,操作权限不
同。以适合实际应用的需求,如:市场部人员只能查看用户名单和联系方
法;财务管理员可以为付款用户开通网站;用户管理员可以对用户资料进
行修改、删除
操作;超级管理员可以对管理员进行管理。注册用户只能对
自己的数据库进行管理。
p>
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
多层结构的数据库应该设计,
p>
系统分为:
客
户端、服务器、
Web
服务器、数据库服务器。基工作过程为:
<
/p>
①客户端的电脑输入
IP
地址执行应用程
序,
连接到
Web
服务器,
再由
WEB
服务器与服务器连接。客户端不处理企
业核心逻辑,只拥有部分应该
逻辑。减少负载。
②
Web
服务器接收并处理浏览器的网页请求,并调
用应用服务器的应
用程序,接收处理结果,并回送客户端。
③应用服务器处理业务逻辑,接受输入,处理后返回结果。
<
/p>
④数据库服务器处理业务数据,负责管理对数据的读写和维护,以及
数据库的数据访问权限。
3
.
p>
2
系统软件开发平台
3
.
2
.
1
数据库管理系统选择
Microsoft SQL Server 2000
中文版是基于客户端服务器模
式
的新一代大型数据库管理系统(
DBMS
),它在电子商务、数据仓库和数据
库解决方案等应用中起着重要的核心作用,可为
企业的数据管理提供强大
的支持,对数据库中的数据提供有效
的管理,并采用有效的措施实现数据
的完整性及数据的安全性。
3
.
2
.
2
开发工具选
是由微软公司推出的用于
Web
应用开发的全新框架,
是
< br>.NET
框架
(即
.NET <
/p>
Framework
)
的组成部分,
p>
它从现有的
ASP(Active
Server Pages,
活动服务器页
)
结构体系上跨出了一大步,是对传统
ASP
技术的重大升级和更新。
是建立在
< br>.NET
框架的公共语言
运行库上的编程框架,
可用于在服务器上生成功能强大的
Web
应用程
序。
微软公司的
.NET
框架是继
ActiveX
技术之后,于
2000
年推出的
用于构
建新一代
Inetnet
集成服务平台的最新框架,
这种集成服务平
台允许各各系统环境下的应用程序通过因特网进行通信和
共享数据。
目前,因特网服务平台亟待解决的重要问题是系统间的互通性问题,
一些相关协议如
XML
(
eXtensible Markup Language,
可扩展标记语
言)
、
SOAP
(
Simple Object Access Protocol,
简
单对象存取协议)
等,
.NET
平台将
对这些协议提供支持,
其意义可与当年
Windows
平台
推出的意义相提并论,
微软公司将其称为<
/p>
“
.NET
战略”
。
也就是说,
.NET
的最终目的就
是让用户在任何地方、任何时间,利用任何设备都能访
问所需的信息、文件和程序。用户
不需要知道这些文件放在会地方,
只需要发出请求,
然后只管接
收即
sk
,
而所有后台的复杂性是完
全屏
蔽起来的。
同时,
对于开发人员来
说,
更容易建立
Web
应用程序和
p>
Web
服务,进一步简化对应用程序的开发。
.NET
框架具有两个主要组件:公共语言库和
.NET FrameWork
类
库。公共语言运
行库是
.NET
框架的基础。从层次上来看,
< br>.NET
框架
包
括
三
个
主
要
< br>组
成
部
分
:
公
共
语
言
运
行
时
(
p>
Common
Language
p>
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
p>
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
(自动产生)
+
托运业主身份证号码
+
托运业
主的姓名
+
托运业主的单位名称
+
业主地址
+
业主联系电话号码
p>
+
业主邮政编
码码
数据流名:
(进港管理)查询请求
来
输
组
.
.
.
.
五、数据表设计
:
源:出港中输入的数据
出:数据编码
成:
< br>托运业主身份证号码
+
编码
第四章
数据库设计
E-R
模型
5.1
数据库结构及说明
物流管理系统数据表
及视图设计
:
管理员登陆表:
(
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
类型
说明
备注
货物流水号自动产生)
主键
货物名称
货物包装类型
货物所占体积
货物重量
货物录入操作员
货物数量
(
件数
货物的标签
货物是否到站
默认在途中
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>
邓
p>
彬:系统代码编写
+
软件界面设计。
邹
奇:系统软件测试。
黄
键:系统相关材料收集。
小组成员首
次接触
。并运用
的知识,运用
开
发平台,借助
SQL
数据库。在何迎生老师的大力支持和帮助下,开发出运
网物流管理系统。对本小组各成员都有很大的激励。本次开发中,各成员
的感触都很深。系统需求阶段,小组成员汪庆春走访吉首市各大中小型物
流公司,详细记
录了如“中铁快运”公司的管理软件中的各项需求。为小
组成员后期的代码编写提供了强
有力的资料来源。在以后的代码编写过程
中,我们深深体会到了前提工作的重要,因为有
汪庆春同学的详细分析,
使我们的后期编写工作很少出现重写的情况。
< br>
编写代码过程中,小组成员也深深了解到了一个软件并非一个人,一
朝一夕可以完成的。编写系统,是要有很强的团队合作意识。这需要借助
每
个人的力量,汇集各成员的强项。才能开发出适用性强、可读性好的软
件。本次开发中,
运网小组运用
VSS6C
团队开发设计软件,加强了团队代
p>
码编写之间的相互交流。让整个代码编写事半功倍。
测试阶段,虽事先有具体分工,但在分工的过程中也有合作。测试阶
段出现的
问题我们都争取当天解决。并做好日志工作。
当然,本次系统
开发过程中也出现了许多问题,比如小组成员大都是
首次学习
<
/p>
。设计语言掌握不足。造成系统开发出现真空地带等等。
但不管如何,我们始终相信,运网开发小组不会因为第一段的
工作完
成而停止。通过第一阶段的设计。使小组成员熟悉了
p>
语言。也了
解了整个设计过程。相信后阶段的设计将很快完成现阶段
的不足。
参考文献
[1]
但正刚
,
《
高级编程》
,
北京
:
清华大学出版社
,2
002
[2] Evangelos Petroutsos, Asli
Bilgin,
《
Visual
数据
库编程》
,
北
京
:
电子工业出版
[3] [4]
王树伟
,
王蒙
,
《
Visual
编程指南》
,
p>
北
京
:
电子工业出
版社
,2002
.
[5]
王兴品
,
《
Visu
al
数据库开发典型实例》
,
北京
:
电子工业出版社
,2002
[6]
金雪云
,
p>
焦桂英等
,
《
p>
高级开发技术与范例》
,
北京
:
电子工业出版
社
,200
2
[7]
孟军
,
< br>王宝学
,
《精通
网络编程》
,
北京
:
人民邮电出版社
,2002
[8]
焦荐沧
,
龙晓敏
,
p>
《深入体验
》
,<
/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
.=
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
p>
加密
connection =
new
SqlConnection(strcon);
实例化数据库连接对象
();
打开数据库连接对象
cmd=
new
SqlCommand(strSQL,connection);
实例化
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(
你已经
三次输入错误
}
p>
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
--
*
*
*
*
**
代码编写者
代码审查者
编译环境