银行大厅自助信息系统的开发与实现
随着新世纪网络和信息技术的蓬勃发展,尤其是计算机技术、网络通讯技术、多媒体技术、数据库技术以及自动化技术的日新月异,在这样的背景下,银行的业务也不断的扩大和发展,此时,自助银行的产生为这方面的业务需要提供了新的实现途径。
本毕业设计在基于银行业务大厅现有业务的基础上,针对自助银行的概念和其独有特点,通过.NET+SQL技术,开发一个简单的银行大厅自助信息系统,完成一些自助银行的业务需求如帐户信息查询、帐户挂失、自助交费、留言、新闻查询等功能。
本论文从分析目前电子银行发展现状入手,具体深入地考察了当前自助银行的客户需求,详细说明了系统的结构设计,后台数据库的设计,系统功能设计,最后系统测试的效果,客观对整个系统进行了总结并对其提出修改意见。
Development and Implementation of Bank Lobby Self-Assistant Information System
With the development of the Internet and information technology, the birth of self-assistant bank brings something new to the traditional bank operations.
The paper is concerning a simple self-assistant bank. This MIS is based on the real bank model and directs at the conception of self-assistant bank and special features. The self-assistant bank system can implement some bank services such as Loss Report, information searching, message board and so on through the ASP.NET+SQL.
In this paper, the functions of the system are introduced in details, and there is a short briefing about the process. In the last chapter, there are some improving advices to introduced. This paper takes a long view of the future self-assistant information bank.
Key words: Loss Report, Self-assistant Bank; .NET Technology; C# Language; SQL Server database
目 录
论文总页数:23页
银行大厅自助信息系统就是将信息技术、互联网与传统银行三要素融为一体,为客户提供综合、统一、实时金融服务的银行形态。它借助现代化的自助服务设备,为客户提供方便、高效的多种金融服务,属于银行柜台业务处理电子化与自动化的一部分。
由于经济快速发展,贸易联系日渐紧密,人类生活节奏不断提高,对金融系统业务要求也与日俱增,传统银行的电子辅助系统的一些劣势突显出来了。传统的ATM或POS机虽然实现了银行一些业务,但其查询功能比较单一,与系统的交互性不够,操作不够人性化,更新系统麻烦等缺点限制了其发展,银行系统需要一种具有多方面优点的辅助系统来提升服务水平。
自助银行发展之所以能够如此迅速,正是由于它具有其他银行辅助系统所不可比拟的优势。其优势归结起来大体上有三点:
(1)自助银行可以极大地降低经营服务成本,创造巨大的利润空间。
(2)自助银行由于只在银行大厅运行,属于内部运行,安全性高。
(3)由于自助银行业务运作完全电子化,所以节省银行和客户的人力资源,减少资金损失同时,也极大的提高了银行的自动化水平和银行的服务水平。
自助银行概念的引入,使银行在经营理念、经营方式、经营手段、服务水平等方面跃上一个新的台阶。因此,利用高新技术,引入"金融超市"迅速占领市场,降低经营成本,对银行具有战略性意义。
未来自助银行在接受更多用户的青睐的同时面临更多的问题,银行安全性将进一步加强;为了形成产业经营模式,自助银行的网点数量必将大大增加;自助银行将利用新的技术,改变现有运营模式单一的缺点。
系统构架比较:
总的来说,针对自助银行等此类业务需求,开发的系统主要有两类不同,而每类系统又有各自的特点。要确定采用何种开发工具就需要先确定采用何种系统构架。所以,首先对这两类系统构架做简要介绍。
这两类系统构架分别是:C/S构架,即client/server(客户机/服务器)构架;B/S构架,即browser/server(浏览器/服务器)结构构架。
C/S结构,即client/server(客户机/服务器)结构,它建立在中间件产品基础之上的,通过将任务合理分配到client端和server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。
B/S结构,即browser/server(浏览器/服务器)结构,是随着internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构,具备了很好的移动性,确保不同的使用者都能以最佳的方式来使用所需的系统。
![]() |
图2-1 B/S系统体系结构图
.NET是Microsoft 对所有以网络技术为核心,用于新一代多种设备互联系统产品的一个统称。.NET首先是一个环境,这是一个理想化的未来互联网环境,微软的构想是一个“不再关注单个网站、单个设备与Internet互联的Internet环境,而是要让所有的计算机群、相关设备和服务商协同工作的网络计算机环境。
.NET 谋求的是一种理想的互联网环境。这种网络结构不是物理网络层次上的拓扑结构。而是面向软件和应用层次的一种有别于浏览器只能静态浏览的可编程Internet软件结构。.NET 的最终目的是让用户在任何地方、任何时间,以及利用任何设备都能访问他们所需的信息、文件和程序,用户不需知道这些东西存在什么地方,甚至连如何获得等具体细节都不知道。
.NET分成3个主要部分:成为集广大网络为一体,整和产品和服务的战略;为实现用户需要而提供具体技术的NET Framework;众多可以为.net技术提供支持的服务器产品如SQL Server,BizTalk Server。
.NET平台的优点:
(1)更简单、快速的开发:宽泛、一致的架构允许开发人员编写更少的代码,更多地复用代码。因为系统提供了一组丰富的底层功能,数据类型和接口约定都标准化了。所以,.NET中的编程更简单。代码较少意味着开发更快速、错误更少、维护更容易。
(2)极佳的工具支持:它包含一组丰富的许多功能都类似于操作系统的工具,是专门为支持开发语言而设计的,这些工具适用于所有使用.NET的语言。第三方也将推出许多这类工具。
(3)更简单安全的部署:CLR会自动管理由.NET Framework中编译器嵌入已编译的模块中的标识符。标识符提供了加载、运行模块,以及定位相关模块所需的所有信息。CLR还可以管理同一组件的不同版本。.NET中另一个重要的部署优点是应用程序只需安装它们自己的核心逻辑。
(4)可伸缩性:大多数系统级的执行功能都集中在CLR中,内存和过程管理可以内置伸缩性。CLR中的内存管理是自我配置、自动调整的。同时垃圾回收(释放不再使用的内存)已进行了高度的优化,CLR支持MTS/COM+的许多组件管理功能(例如对象池)。因此组件可以运行得更快,支持更多的用户。
ASP.NET摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.Net Framework专门推出的C#(读c sharp),它可以看作是VC和Java的混合体,尽管MS自己讲C#内核中更多的象VC,但实际上它和Java更象一些。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
数据库是信息系统的核心和基础,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。所以数据库设计成功与否对整个信息系统的成熟和顺利运行有着重要的作用。数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。对所有档案、资料、人员等的管理都要通过数据库管理的形式进行。
SQL-Server数据库可以说是目前网络上应用最为广泛的数据库之一,它具有以下优点:一,它能够实现客户/服务器体系结构,随着局域网的不断扩大和改进,局域网中共享文件、共享设备仅仅是其应用中很小的一部分,人们迫切要求服务器端能够完成一部分应用数据处理工作,即将需要处理的工作任务分配给客户端和服务器共同来完成,由此提出了客户机/服务器(Client/Server)的概念,它具有任务由客户机和服务器共同承担,响应速度快,对计算机档次要求较低,性能价格比较优的分布式处理模式,系统可扩充性好,抗灾性能好,数据安全性好,用户介面友好等优点;二,MS-SQL几乎采用了和MS其他产品一样的简洁用户界面模式,图形化的用户界面,使系统的管理更加直观和简单;三,MS-SQL几乎可以和市面上大多数的信息系统开发软件和编程语言合作使用,所以提供了丰富的编程接口,为用户进行应用程序设计提供了更大的选择余地;四,同属于MS的产品,与Windows NT操作系统的有机集成,多线程体系结构设计,提高了系统对用户并发访问的速度。五,对Web技术的支持,使用户能够很容易的将数据库中的数据发布到网上。六,价格上的优势。与其它一些大型数据库系统如Oracle、Sybase等相比,SQL-Server的价格非常便宜。
本论文根据自助银行实际功能和用户的实际需求,在.NET环境下为用户提供必要的功能服务,其系统分为以下三类用户:
(1)管理员用户:这是具有高级权限的一类用户,要求能够发布新闻和管理新闻;能够与用户进行交流,也就是要求能够通过发布留言形式处理用户的问题并且管理留言;要求能及时的处理用户的挂失申请。
(2)帐号用户:浏览自己的帐户信息,实现对帐户密码的管理;能够对自己的帐户活动进行细致的查询;能够实现帐户在紧急情况下的挂失处理;能够提供便捷服务,如简单的交费;要求浏览最近新闻,和发表看法。
(3)一般用户:要求浏览最近新闻,和发表看法。
界面要求:统一采用简洁实用的用户及管理员界面,不同使用者有不同的界面提示,不同的操作者的界面都能显示其拥有的全部功能提示,并且可以方便地直接进入某个功能。
服务时间要求:自助银行由于需要长期的无人执守运行,要求系统能和相关硬件相配合实现24小时服务。
适应性要求:要求采用的系统开发平台能够适应大多数的网络环境和条件,能够适应大多数用户的使用习惯,代码需要一定移植性。
本文论述的银行大厅自助信息管理系统是基于B/S结构的数据库应用系统,具体反映为ASP+SQL技术的一种具体实现,根据B/S结构和用户实际应用特点,实现的功能主要可以在两类不同的机子上完成:Web服务器和自助机客户端。在客户端,主要实现使用用户的浏览功能和提交业务功能。在Web服务器上,主要来实现整个自助银行功能的后台处理及存储功能。后台数据库由一系列的具有相互关联的逻辑关系的表构成。还有一些存储过程和控件,用于实现其他的功能比如自动编号和图表生成。
根据用户的需求分析和对系统功能的考量,得到如下的系统功能图:
![]() |
图4-1 系统功能图
用户按照系统功能安排分为三类:管理员用户,拥有银行帐号的用户,一般用户。
根据本系统的功能特点,登陆用户限定在银行业务处理的大厅中的客户。其中储户可以通过输入自己的身份证号码和想要查询的卡号以及匹配的密码登陆自助机查询,所要查询的帐户应该属于输入的身份证号码,不然系统将不允许用户进入。
一般用户不用输入身份证号码和想要查询的卡号进行登陆,只能在首页进行操作。
管理员有单独的页面通过输入密码进入系统。
帐号添加:通过实际生活中用户到开户行办理帐户业务,帐号信息将严格按照实际情况添加到数据库中。
银行帐户号基本资料:帐户号,帐户类别(信用卡,定期,活期),初始金额,消费密码(用户开户时候留下的),帐户状态,拥有人的身份证号,过期时间(只有定期有效),挂失时间和处理时间(只有挂失处理时有效)。
银行消费基本资料:帐户号,消费类型(包括存入和支取),消费时间,消费金额。
银行消费记录查询:用户可以通过选择不同的帐户查询在不同时间范围之内的消费记录,以便用户明确自己的消费行为。
用户不只能浏览某一个帐户,而且可以进入系统后通过输入自己其他帐户的帐户号码和密码来一起显示多个帐户信息。
新闻信息的基本资料:主标题,副标题,新闻内容,发布人,发布时间。
新闻的处理:新闻可以由所有权限的用户来浏览,但只能由管理员来添加和删除。
留言信息的基本资料:留言人,留言时间,留言标题,留言内容
用户留言:任何权限的用户均可留言,但不允许用户回复留言。
留言信息的管理:留言回复只能由管理员来操作,管理员还能删除留言。
用户信息基本资料包括:个人身份证号码,昵称,用户密码,电话,邮箱。
用户信息基本资料修改:用户进入系统后会根据实际情况修改自己的联系方式便于银行联系。
收费管理:银行可以为用户提供有限的自助收费项目的服务,用户只需要指定某个帐户便能从中消费小于其余额的金额。
用户申请挂失处理:当用户发现自己所拥有的帐户已经丢失或密码外泄之后应当及时在网上进行挂失,挂失时候会记录下挂失的时间,帐户状态变成“挂失处理中” 。
管理员处理挂失:管理员登陆后会发现有挂失没有处理,便选择相应帐号处理,记录下处理时间,帐户状态变成“挂失” 。
用户申请取消挂失:当用户已经得到银行方面的挂失处理后,可以申请取消相应帐户的挂失处理,这样这个用帐号便能继续使用。
管理员处理取消申请:管理员登陆后会发现有挂失取消没有处理,便选择相应帐号处理,挂失时间和处理时间都会为空。
用户可以修改自己所有帐户的密码。管理员可以修改其登陆密码。
根据需求分析,本系统后台数据库(YHGL)共分为8个表,以下分别给出各个数据库表的简单描述。
(1)用户帐户表(account)
该表用来存储所有用户的帐户信息。该表是用户开户时候自动记录在数据库中的。用户的更改密码操作会更新消费密码列;用户的自助交费会更新帐户余额列;用户的挂失申请会先更新帐户的挂失时间列,然后管理员对挂失的处理会接着更新挂失的处理时间列。
表4-1用户帐户表
字段名 |
字段类型 |
是否主键 |
说明 |
id |
bigint |
是 |
定义数据库的顺序编号,用于区别 |
account |
char |
否 |
定义用户的帐号,用于识别不同帐户 |
acpw |
char |
否 |
定义帐户的消费密码 |
ucard |
char |
否 |
定义帐户所有者身份证号 |
balance |
char |
否 |
定义帐户余额 |
estate |
char |
否 |
定义帐户状态是否挂失 |
sort |
char |
否 |
定义帐户的类型(贷记卡或借记卡) |
outtime |
datatime |
否 |
定义帐户过期时间(定期有用) |
firsttime |
datatime |
否 |
定义帐户的挂失时间(允许为空) |
secondtime |
datatime |
否 |
定义帐户的挂失处理时间(允许为空) |
(2)管理员表(admin)
用来记录管理员的登陆信息。管理员对自己登陆密码的更改会更新管理员口令列。
表4-2管理员表
字段名 |
字段类型 |
是否主键 |
说明 |
id |
bigint |
是 |
定义数据库的顺序编号,用于区别 |
sname |
char |
否 |
定义管理员属性,以便代码识别 |
saccount |
char |
否 |
定义管理员昵称 |
spw |
char |
否 |
定义管理员口令 |
(3)费用类型表(citem)
用来存储银行可以办理的自助交费类型,由管理员后台手动添加。
表4-3费用类型表
字段名 |
字段类型 |
是否主键 |
说明 |
id |
bigint |
是 |
定义数据库的顺序编号,用于区别 |
citem |
char |
否 |
定义交费项目的名称 |
(4)留言信息表(leaveword)
用于记录管理员或者用户的留言信息。用户通过自己的留言操作会向留言信息表中添加留言的题目,内容等所有相关信息。其中留言标题不能为空。
表4-4留言信息表
字段名 |
字段类型 |
是否主键 |
说明 |
id |
bigint |
是 |
定义数据库的顺序编号,用于区别 |
Lwtitle |
varchar |
否 |
定义留言的题目 |
Lwcontent |
text |
否 |
定义留言的内容(允许为空) |
Lwuname |
char |
否 |
定义留言者名称 |
Lwtime |
datatime |
否 |
定义发布留言的时间 |
Ancontent |
varchar |
否 |
定义回复的内容 |
estate |
char |
否 |
定义回复的状态 |
(5)被锁定帐户记录表(loginoverflow)
可以支持对某个多次不能成功登陆帐户的锁定功能。
表4-5被锁定帐户记录表
字段名 |
字段类型 |
是否主键 |
说明 |
id |
bigint |
是 |
定义数据库的顺序编号,用于区别 |
account |
char |
否 |
被锁定的帐号记录(允许为空) |
Lofip |
char |
否 |
定义不良IP号码(允许为空) |
loftime |
Datatime |
否 |
定义其登陆时间(允许为空) |
(6)新闻信息记录表(news)
用于记录网站新闻发布的相关内容。此表的内容只能有管理员来添加和删除,
表4-6新闻信息记录表
字段名 |
字段类型 |
是否主键 |
说明 |
id |
bigint |
是 |
定义数据库的顺序编号,用于区别 |
nname |
char |
否 |
定义新闻标题 |
ntitle |
char |
否 |
定义新闻副标题 |
Ncontent |
text |
否 |
定义新闻的内容 |
nmame |
char |
否 |
定义新闻发布者身份(默认管理员) |
ntime |
datatime |
否 |
定义新闻发布时间 |
(7)帐号消费日志表(note)
用于记录每个帐户的存入和支取和消费的情况,由管理员在后台添加。用户的自助消费行为会被系统自动添加到帐号消费日志表中。
表4-7帐号消费日志表
字段名 |
字段类型 |
是否主键 |
说明 |
id |
bigint |
是 |
定义数据库的顺序编号,用于区别 |
account |
char |
否 |
定义用户的帐号,用于识别不同帐户 |
citem |
char |
否 |
定义用户帐户的消费类型 |
ctime |
datatime |
否 |
定义用户日志发生时间 |
csum |
char |
否 |
定义帐户发生的金额 |
(8)用户信息表(user)
用来记录用户的联系信息。用户可以自行修改的列内容为昵称,电话号码和电子邮箱号码。
字段名 |
字段类型 |
是否主键 |
说明 |
id |
bigint |
是 |
定义数据库的顺序编号,用于区别 |
umame |
varchar |
否 |
定义用户的昵称 |
ucard |
char |
否 |
定义用户的身份证号 |
utel |
char |
否 |
定义用户的电话号码 |
uemail |
varchar |
否 |
定义用户的电子邮箱号码 |
表4-8用户信息表
基本设计思想和流程:储户进入系统之前只能作为一般用户浏览新闻和发布留言,经过帐号密码验证进入系统之后,才能完成查看帐户和申请挂失等主要功能。主要流程如下所示:
![]() |
图4-2 系统流程图
![]() |
图5-1 用户登陆页面
系统会自动判断身份证号,帐户号码,密码,验证码是否为空,还会验证身份证号是否符合国家规定的标准格式
//验证码的实现
asp:TextBox ID="txtCode" runat="server" Font-Size="0.8em" Width="74px" MaxLength="4"></asp:TextBox>
<img alt="点击刷新验证码" src="CodeImg.aspx" height="15" width="45" onclick="this.src='CodeImg.aspx'" /></td>
if (txtCode.Text != Session["VerifyCode"].ToString())
{Response.Write("<script>alert('" + "验证码不正确!" + "');</script>");
return; }
图5-2 管理员登陆页面
![]() |
![]() |
成功登陆系统过后,所要查询的帐户信息就会马上显示出来。存折类型会用红色字体注明,挂失时间和处理时间在帐户正常的时候不会有显示。信息显示采用.NET2005的GridView控件(存折帐户相同):
图5-3 帐户显示效果图
后台动作:
SQLstr = "select account as 帐户,balance as 帐户余额,estate as 帐户状态,firsttime as 挂失时间,secondtime as 处理时间 from account where ucard = '" + Session["logincard"].ToString() + "' and sort = '信用卡'";
//获取数据库连接字符串
strConnection = ConfigurationManager.AppSettings.Get("strConnection");
//建立数据库连接
myConnection = new SqlConnection(strConnection);
myAdapter = new SqlDataAdapter(SQLstr, myConnection);
//定义内存数据库
Dsak = new DataSet();
myAdapter.Fill(Dsak, "ak");
GVmyaccount_k.DataSource = Dsak.Tables["ak"];
GVmyaccount_k.DataBind();
追加显示多个帐户:用户可以通过继续输入帐户号码和密码添加更多的帐户进行查询,系统会自动搜寻数据库中是否存在此帐户。
图5-4 帐户追加功能图
![]() |
![]() |
用户可以浏览最近发布的几条新闻题目,其中新闻题目过多的时候,系统会分页显示它们。通过点选题目可以在新的页面看到新闻的具体内容。
图5-5 新闻标题显示效果图
![]() |
图5-6 新闻内容显示效果图
管理员可以对新闻内容添加和删除。
![]() |
图5-7 新闻删除示意
![]() |
图5-8 新闻发布示意图
任何权限的用户均可以发布留言,留言必须输入题目。只有管理员才能回复用户的留言,已回复留言的内容系统用黄色注明。
图5-9 处理回复留言
![]() |
图
![]() |
图5-10 回复示意图
用户通过设置时间起点和终点查询选择帐户的金额发生记录,可以作为帐户改变的日志记录。
![]() |
图5-11 帐户消费查询示意图
本系统提供简单代收费管理功能,交费项目由管理员后台添加,用户需要选择需要交费的项目和输入自己的某个帐号和其密码(定期帐号不能进行交费),便可以缴纳不多于自己帐户余额的金额。交费金额精确到小数点后一位。
![]() |
图5-12 自助交费功能图
SQLstr = "select * from account where account = '" + DDLrepchargeaccount.Text + "'";
//获取数据库连接字符串和建立数据库连接省略……
myAdapter = new SqlDataAdapter(SQLstr, myConnection);
Dsbalance = new DataSet();
myAdapter.Fill(Dsbalance, "balance");
if(Convert.ToInt64(Dsbalance.Tables["balance"].Rows[0]["balance"].ToString())<Convert.ToInt64(TBrepchargemoney.Text))
{
Response.Write("<script language='javascript'>alert('你的帐户 " + DDLrepchargeaccount.Text + " 没有足够的余额来交纳此项费用');</script>");
return;
}
SQLstr = "INSERT INTO note(account,citem,csum) VALUES ('" + DDLrepchargeaccount.Text + "','" + DDLrepchargeitem.Text + "','" + TBrepchargemoney.Text + "')";
myCmd = new SqlCommand(SQLstr, myConnection);
myCmd.Connection.Open();
//异常捕获语句省略……
//扣除消费的金额
Lstr = "update account set balance = '" + Convert.ToString(Convert.ToInt64(Dsbalance.Tables["balance"].Rows[0]["balance"].ToString()) Convert.ToInt64(TBrepchargemoney.Text)) + "' where account = '" + DDLrepchargeaccount.Text + "'";
myCmd = new SqlCommand(SQLstr, myConnection);
myCmd.Connection.Open();
//异常捕获语句省略……
帐号挂失功能主要采用用户申请挂失,管理员批准挂失;处理完成后用户申请取消挂失,管理员批准的模式。一般用户申请挂失后24小时之内,银行要对申请作出回应,系统会自动记录申请提交的时间,和处理的时间,方便用户查看。
![]() |
图5-13 用户挂失申请和取消挂失申请图
//帐户状态改变处理
protected void GridViewreport_SelectedIndexChanged(object sender, EventArgs e)
{
SQLstr = "update account set estate = '挂失处理中',firsttime ='" + DateTime.Now.ToString() + "' where account = '" + GridViewreport.SelectedRow.Cells[1].Text + "'";
myCmd = new SqlCommand(SQLstr, myConnection);
myCmd.Connection.Open();
}
//异常捕获语句省略……
//帐户状态改变处理
protected void GridViewureport_SelectedIndexChanged(object sender, EventArgs e)
{
SQLstr = "update account set estate = '取消挂失中' where account = '" + GridViewureport.SelectedRow.Cells[1].Text.ToString().Trim() + "'";
myCmd = new SqlCommand(SQLstr, myConnection);
myCmd.Connection.Open(); }
//异常捕获语句省略……
![]() |
图5-14 管理员处理挂失和处理申请挂失图
protected void GridViewadmindeluser_SelectedIndexChanged(object sender, EventArgs e)
{
SQLstr = "select * from account where account = '" + GridViewadmindeluser.SelectedRow.Cells[1].Text + "'";
myAdapter = new SqlDataAdapter(SQLstr, myConnection);
Dsuser = new DataSet();
myAdapter.Fill(Dsuser, "account");
}
if (Dsuser.Tables["account"].Rows[0]["estate"].ToString() == "挂失处理中")
{
SQLstr = "update account set estate = '挂失',secondtime ='" + DateTime.Now.ToString() + "' where account = '" + GridViewadmindeluser.SelectedRow.Cells[1].Text + "'";
}
else
{
SQLstr = "update account set estate = '正常',firsttime = null,secondtime = null where account = '" + GridViewadmindeluser.SelectedRow.Cells[1].Text + "'";
}
myCmd = new SqlCommand(SQLstr, myConnection);
myCmd.Connection.Open();
![]() |
图5-15 用户看到的帐户状态改变图
系统会要求用户输入原有密码并确认后,便可以将旧有密码替换成新密码,系统会自动判断两次输入的新密码是否一致。
![]() |
图5-16 用户帐户密码修改图
图5-17 管理员修改登陆密码
![]() |
图