1. 程式人生 > 資料庫 >【C#】通過點選事件與資料庫進行互動資料(分析篇)

【C#】通過點選事件與資料庫進行互動資料(分析篇)

前言:本文主要以分析需求的角度去實現功能,側重點是分析而不是程式碼的實現,所以本文中提供的程式碼較少,重在培養初學者的分析需求問題的意識。

實現目的:通過按鈕事件,讓前臺資料跟資料庫進行資料互動。

模組需求:1.繪製登入頁面和註冊頁面。2.登入功能:去查詢資料庫資料。3.註冊功能:將符合需求的內容插入到資料庫中。

語言:C#

前端:ASP.NET

資料庫:SQL Server

工具:Visual Studio2010、SQL Server 2019

—— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— 分界線 —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— ——

分析需求:任何功能實現之前,都必須需要前端頁面的前提下才可以編寫功能,在繪製完前端頁面後,分析功能觸發方式(頁面載入執行還是點選觸發執行等等),最後就是要實現的功能編寫。—— 15分鐘 ——

需求執行:1.繪製登入和註冊前端頁面。2.登入和註冊功能都是點選才觸發的,所以是按鈕的OnClick事件。

1.繪製登入頁和註冊頁前端頁面。

—— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— 分界線 —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— ——

分析需求:在資料庫未有任何資料的情況下,登入的查詢功能是無法測試的,所以應該先編寫註冊功能,確保能正確的插入資料後,再使用登入的查詢功能去獲取資料,才可以測試功能是否正確執行。

需求執行:在前端頁面中,找到註冊按鈕,由分析可得知,註冊功能由點選按鈕觸發,所以使用的是按鈕的OnClick事件。

 

1.繫結註冊事件。

分析需求:既然本功能需要訪問到資料庫,那麼前提是必須先搭建與資料庫的連線,否則有關對資料庫的操作將無法順利執行。

需求執行:1.搭建與資料庫的連線。2.根據業務需求編寫功能。

【關鍵程式碼】

1.最頂部需要引入SQL庫。

using System.Data;
using System.Data.SqlClient;

 

2.資料庫物件流程搭建

 

(1)初始化資料庫連線物件

SqlConnection conn = new SqlConnection("關鍵字");

功能分析:關鍵字的構成部分:("server=伺服器名稱;database =資料庫名稱;uid=登入名;pwd=密碼");

 

 

(2)開啟資料庫

conn.Open();

 

(3)建立一個數據庫命令列

SqlCommand cmd = conn.CreateCommand();

 

(4)編寫SQL語句

cmd.CommandText = "SQL語句";

功能分析:根據當前的也許需求執行相應的功能,比如:當前執行的是註冊功能,需要執行的就是插入資料相關sql語句。 inser into ......

 

(5)執行命令

cmd.ExecuteNonQuery();

功能分析:當執行完SQL語句後,我們需要知道語句是否正確執行成功,於是使用ExecuteNonQuery(),這個方法會返回受影響的行數,當受影響的行數>=1時,代表插入資料了。

 

(6)執行成功提示和關閉SQL函式(一般放置在事件方法的最後執行)

功能分析:當語句成功執行完,需要通知使用者或者開發者知道,所執行的步驟已成功執行,並且可以根據業務需求跳轉頁面。執行完SQL相關的功能夠,最好關閉SQL方法,以節省記憶體和優化使用者體驗。

        Response.Write("<script>alert('註冊成功!');window.location.href ='跳轉的頁面路徑'</script>");   //提示成功語句並跳轉頁面

        cmd.Dispose();                                  // 丟棄命令
        conn.Dispose();                                 // 丟棄連線

—— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— 分界線 —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— ——

分析需求:在完成資料庫的搭建後,於是就開始編寫註冊的功能,使用者輸入的資料都是不可被信任的,所謂的不可被信任的資料是指可以直接新增進資料庫的資料,所以在將使用者的資料新增進資料庫之前,必須對使用者輸入的資料進行限制和篩選,只有被篩選後的資料才可以被信任新增進資料庫中。

需求執行:1.獲取使用者在前臺輸入的資料。2.使用者資料的非空判斷。3.使用者資料的值格式限制篩選(身份證、手機號、郵件、賬號、密碼等)

 

(1)獲取使用者的資料(一般在放置在事件最早執行)

例獲取textBox輸入的資料:

string username = txtName.Text;   //txtName 是前臺使用者名稱 TextBox輸入框繫結的ID

 

(2)使用者資料的非空判斷(非空判斷一般作為首要執行的判斷條件)

功能分析:由於我們是使用asp做前端,可以在前端也中新增RequiredFieldValidator組建作為監聽上傳的資料中是否為空,如果為空在提示資訊。

<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
                ControlToValidate="繫結監聽組建ID" ErrorMessage="自義定提示內容" ValidationGroup="繫結組" style="color: red;" ></asp:RequiredFieldValidator>

 

(3)使用者資料格式限制和篩選

功能分析:對於某些特定的資料,我們必須要求使用者上傳的是我們限制的正確格式,這樣才能確定資料的精準和正確性。一般只用正則表示式進行對資料的限制和處理。

 

分析需求:當我們正確的搭建資料庫後,並能確定資料是可信任資料,就可以將資料,通過sql語句新增進資料庫中。

—— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— 分界線 —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— ——

分析需求:註冊功能完成後,開始思考查詢功能。分析登入按鈕是點選才執行的事件所以應該使用按鈕的OnClick,登入事件也是得使用到資料庫,那麼也得進行對資料庫訪問的搭建,登入功能就是拿使用者名稱和密碼去資料庫裡查是否存在這一條資料,如果有就允許登入,沒有就給使用者提示密碼錯誤。

需求執行:1.前端按鈕事件繫結後臺功能 2.搭建資料庫 3.查詢資料是否存在 4.登入成功的頁面跳轉和提示

 

(1)前端按鈕事件繫結後臺功能 (基本於上述註冊功能中描述相同)

 

(2)搭建資料庫 (基本於上述註冊功能中描述相同)

 

(2.1)初始化資料庫連線物件

 

SqlConnection conn = new SqlConnection("關鍵字");

 

 

(2.2)開啟資料庫

 

conn.Open();

 

 

 

(2.3)建立一個數據庫命令列

 

SqlCommand cmd = conn.CreateCommand();

 

 

 

(2.4)編寫SQL語句

 

cmd.CommandText = "SQL語句";

 

功能分析:根據當前的也許需求執行相應的功能。

 

 

 

(2.5)執行命令

 

object ssc = cmd.ExecuteScalar();    //返回查詢結果集中的第一行元素

功能分析:當執行完SQL語句後,我們需要知道語句是否正確執行成功,這裡是查詢資料,我們需要獲取的是查詢到的值是否存在,所以使用ExecuteScalar()方法,並使用object 物件進行接收值。

 

(2.6)判斷返回結果執行功能

功能分析:此處使用object 物件 ssc 接收sql執行查詢返回的值, 若查詢結果不存在則給使用者返回提示語句,反之則執行頁面跳轉或登入成功提示。

 

 

 

總結:使用者輸入的都是不可信任資料,需要對資料進行篩選和限制!使用者輸入的都是不可信任資料,需要對資料進行篩選和限制!使用者輸入的都是不可信任資料,需要對資料進行篩選和限制!