首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

ASP.NET 使用者註冊實戰教學(第 11 節):三層架構與參數化查詢

     編輯:ASP.NET 基礎

前言

本節在前幾節驗證控制項基礎上,實作完整的使用者註冊功能,採用三層架構(UI、BLL、DAL)與參數化 SQL 防止注入,展示企業級開發規範。

專案結構

Solution
├── WebUI (ASP.NET Web Forms)
│   ├── zhuce.aspx          # 註冊頁面
│   └── zhuce.aspx.cs       # 代碼後置
├── BLL (Business Logic Layer)
│   └── zhucechuli.cs       # 業務邏輯處理
├── Model (Entity Layer)
│   └── zhuce.cs            # 實體類別
└── DAL (Data Access Layer)
    └── dbconn.cs           # 資料庫連線工具

步驟一:建立註冊頁面

  1. 新增 Web Form:zhuce.aspx
  2. 設計 6×2 表格佈局:使用者名稱、密碼、性別、興趣、驗證碼、提交按鈕

註冊頁面設計

步驟二:實體類別

namespace Model {
    public class zhuce {
        public int ID { get; set; }
        public string Yhm { get; set; }      // 使用者名稱
        public string Yhpwd { get; set; }    // 密碼
        public string Sex { get; set; }      // 性別
        public string Hobby { get; set; }    // 興趣
    }
}

步驟三:業務邏輯層(參數化查詢)

public class zhucechuli {
    public static void addzhuce(zhuce model) {
        using (SqlConnection cn = dbconn.GetConnection()) {
            cn.Open();
            string sql = "INSERT INTO zhuce (yhm, yhpwd, sex, hobby) VALUES (@yhm, @pwd, @sex, @hobby)";
            using (SqlCommand cmd = new SqlCommand(sql, cn)) {
                cmd.Parameters.AddWithValue("@yhm", model.Yhm);
                cmd.Parameters.AddWithValue("@pwd", model.Yhpwd);
                cmd.Parameters.AddWithValue("@sex", model.Sex);
                cmd.Parameters.AddWithValue("@hobby", model.Hobby);
                cmd.ExecuteNonQuery();
            }
        }
    }
}

步驟四:頁面代碼後置

protected void Button1_Click(object sender, EventArgs e) {
    var model = new zhuce {
        Yhm = TextBox1.Text.Trim(),
        Yhpwd = TextBox2.Text.Trim(),
        Sex = DropDownList1.SelectedValue.Trim(),
        Hobby = DropDownList2.SelectedValue.Trim()
    };
    
    zhucechuli.addzhuce(model);
    // 可導向成功頁或顯示訊息
}

資料庫設定補充

資料表設計

CREATE TABLE zhuce (
    id INT IDENTITY(1,1) PRIMARY KEY,
    yhm NVARCHAR(50) NOT NULL,
    yhpwd NVARCHAR(50) NOT NULL,
    sex NVARCHAR(10),
    hobby NVARCHAR(100)
);

執行結果

註冊頁面執行 註冊成功

三層架構優勢總結

層級職責優勢
UI (WebUI)介面呈現、輸入收集純粹處理顯示邏輯,易於更換前端技術
BLL (zhucechuli)業務規則、流程控制核心邏輯可重用,便於單元測試
Model (zhuce)資料結構定義強型別實體,編譯期檢查
DAL (dbconn)資料庫連線管理連線字串集中維護,連線池優化

安全性關鍵點

  • 參數化查詢:@yhm 等參數防止 SQL 注入
  • 輸入驗證:前端驗證控制項 + 後端長度/格式檢查
  • 密碼加密:生產環境務必儲存雜湊值(BCrypt/PBKDF2),不可明文
  • 連線字串加密:Web.config connectionStrings 區段加密

結語

本節完整展示從頁面設計、實體定義、業務邏輯到資料存取的註冊功能實作。三層架構雖增加初期開發量,但大幅提升系統可維護性、可測試性與擴充性,是中大型專案的標準做法。建議進一步導入 Repository 模式、依賴注入(DI)與 ORM(Entity Framework/Dapper)提升開發效率。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved