ASP.NET银行大厅自助信息系统的开发与实现

news2024/11/18 18:36:09

摘    要

本毕业设计在基于银行业务大厅现有业务的基础上,针对自助银行的概念和其独有特点,通过.NET+SQL技术,开发一个简单的银行大厅自助信息系统,完成一些自助银行的业务需求如帐户信息查询、帐户挂失、自助交费、留言、新闻查询等功能

本论文从分析目前电子银行发展现状入手,具体深入地考察了当前自助银行的客户需求,详细说明了系统的结构设计,后台数据库的设计,系统功能设计,最后系统测试的效果,客观对整个系统进行了总结并对其提出修改意见。

关键字:帐户挂失;自助银行;.NET技术;C#语言;SQL SERVER数据库

3.1  功能需求

本论文根据自助银行实际功能和用户的实际需求,在.NET环境下为用户提供必要的功能服务,其系统分为以下三类用户:

(1)管理员用户:这是具有高级权限的一类用户,要求能够发布新闻和管理新闻;能够与用户进行交流,也就是要求能够通过发布留言形式处理用户的问题并且管理留言;要求能及时的处理用户的挂失申请。

(2)帐号用户:浏览自己的帐户信息,实现对帐户密码的管理;能够对自己的帐户活动进行细致的查询;能够实现帐户在紧急情况下的挂失处理;能够提供便捷服务,如简单的交费;要求浏览最近新闻,和发表看法。

(3)一般用户:要求浏览最近新闻,和发表看法。

4.1  系统结构简介

本文论述的银行大厅自助信息管理系统是基于B/S结构的数据库应用系统,具体反映为ASP+SQL技术的一种具体实现,根据B/S结构和用户实际应用特点,实现的功能主要可以在两类不同的机子上完成:Web服务器和自助机客户端。在客户端,主要实现使用用户的浏览功能和提交业务功能。在Web服务器上,主要来实现整个自助银行功能的后台处理及存储功能。后台数据库由一系列的具有相互关联的逻辑关系的表构成。还有一些存储过程和控件,用于实现其他的功能比如自动编号和图表生成。

4.2  具体功能模块划分

根据用户的需求分析和对系统功能的考量,得到如下的系统功能图:

5.1  用户登陆

5.1.1  储户登陆

图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" οnclick="this.src='CodeImg.aspx'" /></td>

if (txtCode.Text != Session["VerifyCode"].ToString())

{Response.Write("<script>alert('" + "验证码不正确!" + "');</script>");

return; }

5.1.2  管理员登陆

图5-2 管理员登陆页面

5.2  查询帐户信息


成功登陆系统过后,所要查询的帐户信息就会马上显示出来。存折类型会用红色字体注明,挂失时间和处理时间在帐户正常的时候不会有显示。信息显示采用.NET2005GridView控件(存折帐户相同):

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.3  新闻浏览


用户可以浏览最近发布的几条新闻题目,其中新闻题目过多的时候,系统会分页显示它们。通过点选题目可以在新的页面看到新闻的具体内容。

5-5 新闻标题显示效果图


5-6 新闻内容显示效果图

管理员可以对新闻内容添加和删除。

5-7 新闻删除示意


5-8 新闻发布示意图

5.4  留言管理

任何权限的用户均可以发布留言,留言必须输入题目。只有管理员才能回复用户的留言,已回复留言的内容系统用黄色注明。

图5-9 处理回复留言


5-10 回复示意图

5.5  消费日志查询

用户通过设置时间起点和终点查询选择帐户的金额发生记录,可以作为帐户改变的日志记录。

5-11 帐户消费查询示意图

5.6  自助交费

本系统提供简单代收费管理功能,交费项目由管理员后台添加,用户需要选择需要交费的项目和输入自己的某个帐号和其密码(定期帐号不能进行交费),便可以缴纳不多于自己帐户余额的金额。交费金额精确到小数点后一位。

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();

//异常捕获语句省略……

5.7  挂失处理

5.7.1  用户挂失申请和取消挂失申请

帐号挂失功能主要采用用户申请挂失,管理员批准挂失;处理完成后用户申请取消挂失,管理员批准的模式。一般用户申请挂失后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.7.2  管理员处理挂失和处理申请挂失


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.8  密码修改

5.8.1  用户帐户密码修改

系统会要求用户输入原有密码并确认后,便可以将旧有密码替换成新密码,系统会自动判断两次输入的新密码是否一致。


图5-16 用户帐户密码修改图

5.8.2  管理员修改登陆密码

图5-17 管理员修改登陆密码

5.9  帐号锁定

此功能是为了防止恶意猜测帐户密码的行为,当用户输入错误密码,登陆某个帐户不成功达到五次,此帐号便暂时锁定,用户必须申请管理员取消锁定。

图5-18 帐号锁定图

if (Convert.ToInt32(Session["loginoverflow"].ToString()) >= 5)

{

SQLstr = "INSERT INTO loginoverflow(lofucard,lofip) VALUES ('" + TBuname.Text + "','" + Page.Request.UserHostAddress+ "')";

myCmd = new SqlCommand(SQLstr, myConnection);

myCmd.Connection.Open();

try

{

myCmd.ExecuteNonQuery();

myCmd.Connection.Close();

}

catch

{

myCmd.Connection.Close();

return;

}

{

Response.Redirect("~/index.aspx");

Response.Write("<script language='javascript'>alert('登陆失败');</script>");

}

}

try

{

strConnection = ConfigurationManager.AppSettings.Get("strConnection");

//获取数据库连接字符串

//建立数据库连接

myConnection = new SqlConnection(strConnection);

SQLstr = "select lofucard as 锁定帐号,loftime as 锁定时间 from loginoverflow order by id desc";

myAdapter = new SqlDataAdapter(SQLstr, myConnection);

Dslw = new DataSet();

myAdapter.Fill(Dslw, "ip");

GridViewadmindellw.DataSource = Dslw.Tables["ip"];

GridViewadmindellw.DataBind();

}

catch

{ return;}

}

protected void GridViewadmindellw_SelectedIndexChanged(object sender, EventArgs e)

{

//删除黑名单中的记录

SQLstr = "delete loginoverflow where lofucard = '" + GridViewadmindellw.SelectedRow.Cells[1].Text + "' and lofip = '" +   GridViewadmindellw.SelectedRow.Cells[2].Text + "'";

myCmd = new SqlCommand(SQLstr, myConnection);

myCmd.Connection.Open();

try

{

myCmd.ExecuteNonQuery();

myCmd.Connection.Close();

}

catch

{

myCmd.Connection.Close();

return;

}

Response.Redirect("~/adminipkill.aspx");

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1675809.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

某攻防演练心得之随笔记

最近太忙了&#xff0c;忙于各种奇奇怪怪的事情&#xff0c;有攻防&#xff0c;有应急&#xff0c;有渗透&#xff0c;还成为了一段时间内的“word高级工程师”......有师傅说我现在更新的越来越慢了&#xff0c;是呀&#xff0c;其实我也不知道怎么了&#xff0c;每天各种新闻…

原生小程序开发如何使用 tailwindcss

原生小程序开发如何使用 tailwindcss 原生小程序开发如何使用 tailwindcss 前言什么是 weapp-tailwindcss ?0. 准备环境以及小程序项目1. 安装与配置 tailwindcss 0. 使用包管理器安装 tailwindcss1. 在项目目录下创建 postcss.config.js 并注册 tailwindcss2. 配置 tailwind…

idea控制台日志控制

1.清除控制台log日志 测试的时候&#xff0c;控制台打印的日志比较多&#xff0c;速度有点慢而且不利于查看运行结果&#xff0c;所以接下来我们把这个日志处理下: 取消初始化spring日志打印&#xff0c;resources目录下添加logback.xml&#xff0c;名称固定&#xff0c;内容如…

基于Springboot的校园疫情防控信息管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的校园疫情防控信息管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层…

嵌入式学习-通用定时器

简介 框图介绍 时钟选择 计数器部分 输入捕获和输出比较框图 嵌入式学习全文参考&#xff08;小向是个der&#xff09;做笔记&#xff1a;https://blog.csdn.net/qq_41954556/article/details/129735708

AI助力内容创作:让效率与质量齐飞

简述&#xff1a; 本文介绍了AI如何帮助创作者在保持内容质量的同时&#xff0c;大幅度提升生产效率的一些方法&#xff0c;希想 对大家有帮助。 一、自动化内容生成 1. 文本内容生成 使用GPT等模型&#xff1a;利用如GPT-3或GPT-4等大型语言模型&#xff0c;可以直接输入关…

CentOS 7安装Nginx错误

说明&#xff1a;本文记录两个CentOS 7安装Nginx时的错误&#xff1b; 场景&解决 CentOS 7安装Nginx&#xff0c;参考下面这篇文章&#xff1a; CentOS 7安装Nginx 进入nginx目录&#xff0c;运行configure文件时&#xff0c;报下面的错误 错误信息&#xff1a;./confi…

NSSCTF Web方向的例题和相关知识点(二)

[SWPUCTF 2021 新生赛]Do_you_know_http 解题&#xff1a; 点击打开环境&#xff0c;是 提示说请使用wLLm浏览器访问 我们可以更改浏览器信息&#xff0c;在burp重放器中发包后发现是302重定向&#xff0c;但是提示说success成功&#xff0c;说明 我们修改是成功的&#xff…

视频号小店从开店到爆单,最详细的攻略教学,来了!

大家好&#xff0c;我是喷火龙 视频号小店从推出到现在一直备受关注&#xff0c;我的团队已经入局视频号小店一年多了&#xff0c; 可以说&#xff0c;新手做视频号小店采用无货源模式和达人带货的玩法依旧是最合适的。 虽然说这个模式和玩法很多人之前都接触过&#xff0c;…

【iOS】——RunLoop学习

文章目录 一、RunLoop简介1.RunLoop介绍2.RunLoop功能3.RunLoop使用场景4.Run Loop 与线程5.RunLoop源代码和模型图 二、RunLoop Mode1.CFRunLoopModeRef2.RunLoop Mode的五种模式3.RunLoop Mode使用 三、RunLoop Source1.CFRunLoopSourceRefsourc0&#xff1a;source1: 2.CFRu…

深入了解 npm:Node.js 包管理工具详解

文章目录 一、npm 基本概念1.1 什么是 npm&#xff1f;1.2 package.json 文件 二、npm 常用命令2.1 初始化项目2.2 安装依赖2.2.1 安装单个包2.2.2 全局安装包2.2.3 安装开发依赖 2.3 移除依赖2.4 更新依赖2.5 查看已安装的包2.6 发布包 三、npm 高级用法3.1 使用 npm scripts3…

冯喜运:5.14今日黄金原油涨跌走势分析操作建议

【黄金消息面分析】&#xff1a;本周黄金市场将迎来关键的美国通胀数据&#xff0c;包括周二的生产者价格指数(PPI)和周三的消费者物价指数(CPI)。这些数据对美联储的政策路径至关重要&#xff0c;可能会影响市场对利率调整的预期。目前&#xff0c;现货黄金价格小幅上涨&#…

echarts实现金价可视化大屏(项目实战)

前言 最近由于某种原因参加了一个比赛&#xff0c;三天时间肝出来一个可视化大屏项目&#xff08;无后端&#xff09;&#xff0c;代码已开源&#xff0c;但是还在比赛期间不知道会不会影响到 技术使用&#xff1a;html&#xff0c;css&#xff0c;js&#xff0c;echarts&#…

(四)Spring教程——控制反转或依赖注入与Java的反射技术

IoC的底层实现技术是反射技术&#xff0c;目前Java、C#、PHP 等语言均支持反射技术。 在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够获取到这个类的所有属性和方法&#xff1b;对任意一个对象&#xff0c;都能够调用它的任意方法和属性&#xff08;包括私有的方法…

服务攻防——应用协议ssh,rsync,proftpd,openssh,libssh

1.口令猜解 ftp-拿来文件传输的 rdp-windows远程连接 3389 ssh-linux远程连接 工具hydra 口令 1.windows 这就爆破成功了&#xff0c;现在&#xff0c;我们就可以ftp爆破&#xff0c;爆破出ftp的密码 爆破出来后 访问 2.ssh Rsync&#xff08;配置不当&#xff0c;未授权…

刷题之找到字符串所有字母异位词

找到字符串所有字母异位词 滑动窗口。滑动窗口大小为待比较数组的大小。 class Solution { public:vector<int> findAnagrams(string s, string p) {//滑动窗口vector<int>result;if(s.size()<p.size())return result;vector<int>pnum(26,0);//记录p的字…

LQ杯当时的WP

RC4 32位程序用IDA打开看看 进行反汇编 RC4提示&#xff0c;就是一个加密 在sub_401005函数中找到输出的变量&#xff0c;并且立下断点 动调 Packet 字符串搜索flag 看到是给192.168.11.128发送了cat flag的命令 看到它回传 Base64加密了 解一下密码就可以 CC 密码这…

DELL服务器配置ILO(idrac)地址、修改管理员密码

服务器型号&#xff1a;DELL PowerEdge R630 1、重启服务器选择F2进入BIOS 2、重启服务器选择F2进入BIOS 3、选择“Network” 4、配置iDRAC的IP&#xff0c;掩码网关&#xff0c;DNS等信息 5、Esc返回&#xff0c;下滑选择“User Configuration” 6、配置iDRAC的用户名密码以及…

【Java基础】我不允许还有人搞不懂lambda表达式!!!

λ希腊字母表中排序第十一位的字母避免匿名内部类定义过多&#xff0c;使得代码更加简洁其实质属于函数式编程的概念 (params)->expression[表达式] (params)->statement[语句] (params)->{statements}lambda表达式推导过程&#xff1a; 创建一个类&#xff0c;重写接…

HTML特殊字符

特殊字符 有特殊含义的字符成为字符实体 对于有特殊含义的字符,需要通过转移字符来表示 <span> <br><a href"http://www.atguigu.com">我 爱 前端</a> <br>&amp;amp; 效果