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

開發基於 ASP.NET 的自訂日誌管理系統

     編輯:關於ASP.NET

本文介紹以 ASP.NET + VB.NET 三層架構開發的校園一卡通機房刷卡子系統——自訂日誌管理模組,涵蓋自訂格式資料庫設計、業務邏輯封裝與前端查詢/統計/列印功能。

自訂格式資料庫結構

系統不使用標準 SQL 資料表,而是定義 VB 結構體直接對應二進位檔案:

Structure FixUse ' 使用者表
    Public ID As Integer
    <VBFixedArray(15)> Public NoCard() As Byte   ' 卡號
    <VBFixedArray(15)> Public NoUser() As Byte   ' 學號
    <VBFixedArray(15)> Public Name() As Byte     ' 姓名
    <VBFixedArray(15)> Public PSW() As Byte      ' 密碼
    Public Dept As Integer        ' 部門 ID
    Public Attr As Integer        ' 機房總管權限
    Public AttreEx As Integer     ' 擴展權限
    Public Money As Integer       ' 帳戶餘額
    Public Power As Integer       ' 使用者權限
    Public PowerEx As Integer     ' 擴展權限
    Public MoneyEx As Integer     ' 擴展餘額
    <VBFixedArray(31)> Public Rev() As Byte      ' 保留
End Structure

Structure FixLog ' 上下機/繳費日誌表
    Dim ID As Integer           ' 流水號
    Dim Type As Integer         ' 事件類型
    <VBFixedArray(5)> Dim DateTime() As Byte     ' 上機開始時間
    <VBFixedArray(5)> Dim MAC() As Byte          ' 指定 IP
    Dim ManagerID As Integer    ' 收費管理員 ID
    Dim UserID As Integer       ' 使用者 ID
    Dim Money As Integer        ' 金額
    Dim ID_EquipMent As Integer ' 設備號
    <VBFixedArray(5)> Dim DateTimeEnd() As Byte  ' 下機時間
    Public Location As Int64    ' 系統保留
    <VBFixedArray(13)> Dim revex() As Byte       ' 保留
End Structure

三層架構實作

三層架構示意圖

  • UI 層:ASP.NET WebForm,負責呈現與互動。
  • 業務邏輯層 (BLL):VB.NET 類別庫,封裝查詢、統計、分析邏輯,供 WebForm 呼叫。
  • 資料存取層 (DAL):直接讀寫二進位結構體檔案,提供 ReadFixUse、WriteFixLog 等底層方法。

核心功能

  • 使用者上機/下機/繳費記錄查詢(多條件篩選)。
  • 統計分析:時段流量、收益報表、設備使用率。
  • 圖表呈現與列印匯出。
  • 管理員權限分級(機房總管、擴展總管)。

關鍵技術點

  1. FileStream + BinaryReader/Writer 直接操作結構體二進位資料,效能極高。
  2. VBFixedArray 屬性確保結構體大小固定,利於隨機存取。
  3. 快取機制:熱門查詢結果暫存於 Application 或 Cache,減少磁碟 I/O。
  4. 分頁處理:大量日誌採用虛擬分頁,只讀取當頁位移區塊。

部署與維運

  • 資料檔置於 App_Data 目錄,備份只需複製檔案。
  • 定期執行 Compact 整理碎片,維持存取速度。
  • 日誌保留策略:自動封存超過 6 個月的紀錄至離線儲存。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved