ASP.NET銀行大廳自助信息系統的開發與實現

摘 ???要

本畢業設計在基于銀行業務大廳現有業務的基礎上,針對自助銀行的概念和其獨有特點,通過.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.pswp.cn/web/12197.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12197.shtml
英文地址,請注明出處:http://en.pswp.cn/web/12197.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

jmeter中java請求,解決不支持協議和元件,實現自定義元件

目錄 java請求 作用場景 JavaTest類源碼分析 編寫java請求樣例 新建java工程&#xff0c;導入jmeter主要依賴。 編寫java請求類&#xff0c;繼承AbstractJavaSamplerClient, 導入工程為jar包&#xff0c;放置jmeter安裝目錄下lib/ext目錄 重啟jmeter&#xff0c;添加ja…

3D,點云下采樣

文章目錄 一、隨機采樣1、算法原理2、步驟二、格點采樣格點采樣的特點三、均勻采樣1、類似體素網格采樣2、固定間隔采樣3、最遠點采樣四、曲率采樣曲率采樣的特點:參考資料:對于大規模點云處理而言,直接對點云進行特征提取能較好地保留三維結構信息。但由于點云的無序性,直…

flutter開發實戰-log日志存儲zip上傳,發送釘釘機器人消息

flutter開發實戰-log日志存儲zip上傳&#xff0c;發送釘釘機器人消息 當我們需要Apk上傳的時候&#xff0c;我們需要將日志打包并上傳到七牛&#xff0c;上傳之后通過釘釘通知我們日志下載地址。 這里我使用的是loggy來處理日志 一、引入loggy日志格式插件 在工程的pubspec.…

【經驗總結】超算互聯網服務器 transformers 加載本地模型

1. 背景 使用 超算互聯網 的云服務&#xff0c;不能連接外網&#xff0c;只能把模型下載到本地&#xff0c;再上傳上去到云服務。 2. 模型下載 在 模型中 https://huggingface.co/models 找到所需的模型后 點擊下載 config.json pytorch_model.bin vocab.txt 3. 上傳模型文…

Flutter 中的 CupertinoAlertDialog 小部件:全面指南

Flutter 中的 CupertinoAlertDialog 小部件&#xff1a;全面指南 在Flutter中&#xff0c;CupertinoAlertDialog是用于在iOS風格的應用中顯示警告或提示信息的模態對話框。它以其圓角卡片和模糊背景為特點&#xff0c;為用戶提供了一個簡潔而直觀的交互界面。CupertinoAlertDi…

IT行業找工作十面十敗,不妨試試鴻蒙開發崗~

近期某脈上看到這樣一則帖子&#xff0c;討論的非常激烈&#xff01; 相信也有不少人有和他這情況類似&#xff0c;像他這種失業的狀態&#xff0c;近兩年大家或多或少都深有體驗。由于互聯網行業進過了十幾年的快速發展&#xff0c;從2G→3G→4G→5G&#xff0c;在這個期間人們…

c++ 獲取機器碼

看到網上代碼代碼都沒什么好的&#xff0c;自己備用一個 #include <iostream> #include <string> #include <sstream> #include <iomanip> #include <Windows.h> #include <iphlpapi.h> // 包含這個頭文件以獲取 PIP_ADAPTER_INFO #inclu…

elasticsearch-head 源碼運行

1、下載安裝nodejs 地址&#xff1a;Node.js — Run JavaScript Everywhere 2、git下載 elasticsearch-head 源碼 地址&#xff1a;GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster 3、使用cmd 進入 elasticsearch-head 目錄 4、依次執…

嵌入式學習-M4的基本定時器

基本介紹 框圖分析 時鐘選擇 計數器結構 開啟重裝載值寄存器的影子寄存器的工作時序圖 未開啟重裝載值寄存器的影子寄存器的工作時序圖 更新事件以及中斷 相關寄存器 相關庫函數

Cesium+山海鯨:可視化技術的完美融合

在當今數字化浪潮中&#xff0c;可視化技術已經成為各個行業提升效率和優化決策的關鍵。特別是在地理信息系統&#xff08;GIS&#xff09;和數字孿生領域&#xff0c;這種技術的重要性更加凸顯。而山海鯨可視化與Cesium的融合&#xff0c;無疑是這一領域的重大突破。 首先&am…

【Spring】BeanFactory源碼翻譯

package org.springframework.beans.factory;import org.springframework.beans.BeansException; import org.springframework.core.ResolvableType; import org.springframework.lang.Nullable;/*** The root interface for accessing a Spring bean container.* 用于訪問Spri…

量化交易:Dual Thrust策略

哈嘍&#xff0c;大家好&#xff0c;我是木頭左&#xff01; Dual Thrust策略起源于20世紀80年代&#xff0c;由美國著名交易員和金融作家Larry Williams首次提出。這一策略的核心思想是通過捕捉市場中的短期波動來實現盈利。Larry Williams通過多年的研究和實踐&#xff0c;發…

智能EDM郵件群發工具哪個好?

企業之間的競爭日益激烈&#xff0c;如何高效、精準地觸達目標客戶&#xff0c;成為每個市場戰略家必須面對的挑戰。在此背景下&#xff0c;云銜科技憑借其前沿的AI技術和深厚的行業洞察&#xff0c;匠心推出了全方位一站式智能EDM郵件營銷服務平臺&#xff0c;重新定義了郵件營…

[ECE] SRAM DRAM

SRAM&#xff08;Static Random-Access Memory&#xff0c;靜態隨機存取存儲器&#xff09;和DRAM&#xff08;Dynamic Random-Access Memory&#xff0c;動態隨機存取存儲器&#xff09;是兩種主要的隨機存取存儲器技術&#xff0c;它們在計算機和其他電子設備中扮演著重要的角…

2024OD機試卷-字符串序列判定 (java\python\c++)

題目:字符串序列判定 題目描述 輸入兩個字符串 S 和 L ,都只包含英文小寫字母。S長度 ≤ 100,L長度 ≤ 500,000。判定S是否是L的有效子串。 判定規則:S 中的每個字符在 L 中都能找到(可以不連續),且 S 在L中字符的前后順序與 S 中順序要保持一致。(例如,S = ” ace…

StringBuilder

demo1 描述&#xff1a; 主要演示了StringBuilder類的使用。 首先創建一個空的StringBuilder對象s。 使用System.out.println()方法打印對象s&#xff0c;輸出結果為""&#xff08;空字符串&#xff09;。 調用StringBuilder的append()方法多次&#xff0c;將字符串…

半小時搞懂STM32面經知識——RCC

1. 時鐘的概念 時鐘是由電路產生的具有周期性的脈沖信號&#xff0c;相當于單片機的心臟&#xff0c;要想使用單片機的外設必須開啟時鐘。 時鐘對單片機有什么作用&#xff1f; 1. 驅動外設的本質是寄存器&#xff0c;而寄存器需要時鐘觸發才能改寫值。 2. 時鐘頻率越高&#…

安全風險 - 如何解決 setAccessible(true) 帶來的安全風險?

可能每款成熟的金融app上架前都會經過層層安全檢測才能執行上架&#xff0c;所以我隔三差五就能看到安全檢測報告中提到的問題&#xff0c;根據問題的不同級別&#xff0c;處理的優先級也有所不同&#xff0c;此次講的主要是一個 “輕度問題” &#xff0c;個人認為屬于那種可改…

FinnConverter格式轉換工具

FinnConverter簡介 1. 簡潔的操作界面 2. 支持多種格式相互轉換 支持word轉pdf&#xff1b;ppt轉pdf&#xff1b;raw格式轉png/jpng…&#xff1b;其他格式相互轉換 2.1 輸入格式支持 bmp、cr2、cr3、crw、cur、dcr、dng、doc、docx、gif、ico、jpeg、jpg、kdc、mos、nef、…

線程縱橫:C++并發編程的深度解析與實踐

hello &#xff01;大家好呀&#xff01; 歡迎大家來到我的Linux高性能服務器編程系列之《線程縱橫&#xff1a;C并發編程的深度解析與實踐》&#xff0c;在這篇文章中&#xff0c;你將會學習到C新特性&#xff0c;并發編程&#xff0c;以及其如何帶來的高性能的魅力&#xff0…