【文章內容簡介】
言,比一般的計算機程序語言簡單的多。 SQL 命令主要分成兩部分: DDL(Data Definition Language)和 DML(Data Manipulation Language),其中 DDL 是建立數(shù)據(jù)表及數(shù)據(jù)列的指令群,而 DML 則是操作數(shù)據(jù)庫記錄的指令群,如數(shù)據(jù)庫記錄的添加、更新、刪除、和查詢等。 SQL 命令,包括 Select、 Delete、 Update、 Insert Into、 Select Into 等。 ⑴ 篩選及排序記錄的 Select 指令 基本句型一: Select 字段串列 From 數(shù)據(jù)表 基本句型二: Select ? From ? Where 篩選條件 13 基本句型三: Select ? From ? Order By 字段串列 Select Top:限定選取數(shù)據(jù)的條數(shù) ⑵ 刪除數(shù)據(jù)記錄的 Delete 指令 基本語法: Delete From 數(shù)據(jù)表 Where 條件式 ⑶ 更新數(shù)據(jù)記錄的 Update 指令 基本語法: Update 數(shù)據(jù)表 Set 表達 式 ⑷ 增加數(shù)據(jù)記錄的 Insert Into 指令 基本句型一: Insert Into 數(shù)據(jù)表 (字段串列 ) Values (字段串列 ) 基本句型二: Insert Into 數(shù)據(jù)表 (字段 1,字段 2,? ,字段 n) Select ? ⑸ 建立新數(shù)據(jù)表的 Select Into 指令 該指令與“ Insert Into ? Select ?”指令的區(qū)別是,這個指令將建立另一個新的數(shù)據(jù)表,而 Insert Into 是增加數(shù)據(jù)記錄到“現(xiàn)存的”數(shù)據(jù)表中。 1. 2. 4 Visual Basic 訪問數(shù)據(jù)庫的過程 ①定義 數(shù)據(jù)庫組建 Dim con As New ②打開數(shù)據(jù)庫 對于 SQL 數(shù)據(jù)庫,其連接語句為 driver={sql server}。server= localhost。uid=sa。pwd=。database=student。而對于 Access 數(shù)據(jù)庫,連接語句為 Provider=。Data Source= amp。 + \ ③設定 SQL 語句,使用“ Execute”命令,即可開始執(zhí)行訪問數(shù)據(jù)庫的動作 Dim rs As New 其中 rs為結果集對象( RECORDSET) ④關閉結果集對象,斷開與數(shù)據(jù)庫的連接 第二章 系統(tǒng)整體規(guī)劃 2. 1 數(shù)據(jù)庫的設計 在系統(tǒng)設計過程中,首先要建立的就是數(shù)據(jù)庫。本數(shù)據(jù)庫采用 SQL Server 2021 來構造,共使用了 7個表,它們分別是用戶信息表( UserInfo)、學生信息表( StuInfo)、班級信息表( Class)、專業(yè)信息表( Major)、學院 信息表( Depart)、課程信息表( Lesson)、學生成績表( Result)。 1. 用戶信息表( UserInfo): 14 字段名 數(shù)據(jù)類型 說明 是否為空 是否為關鍵字 UserID 文本 用戶名 Not Null Primary Key UserPWD 文本 用戶密碼 Not Null UserName 文本 姓名 Not Null UserPower 文本 使用權限 Not Null 2. 學生信息表( StuInfo): 字段名 數(shù)據(jù)類型 說明 是否為空 是否為關鍵字 SID 文本 學號 Not Null Primary Key SName 文本 姓名 Not Null SGender 文本 性別 Not Null SPlace 文本 籍貫 Not Null SBirthday 日期 /時間 出生日期 Not Null SMinzu 文本 民族 Not Null SZhengzhi 文本 政治面貌 Not Null SDormitory 文本 寢室號碼 Not Null SAddress 文本 家庭住址 Not Null SCode 文本 郵政編碼 Not Null STel 文本 聯(lián)系電話 Not Null SRemark 備注 備注 Not Null 3. 班級信息表( Class): 字段名 數(shù)據(jù)類型 說明 是否為空 是否為關鍵字 ID 文本 班級代碼 Not Null Primary Key 4. 專業(yè)信息表( Major): 字段名 數(shù)據(jù)類型 說明 是否為空 是否為關鍵字 ID 文本 專業(yè)代號 Not Null Primary Key Name 文本 專業(yè)名稱 Not Null 5. 學院信息表( Depart): 15 字段名 數(shù)據(jù)類型 說明 是否為空 是否為關鍵字 ID 文本 學院代號 Not Null Primary Key Name 文本 學院名稱 Not Null 6.課程信息表( Lesson): 字段名 數(shù)據(jù)類型 說明 是否為空 是否為關鍵字 ID 文本 課程代號 Not Null Primary Key Name 文本 課程名稱 Not Null Time 文本 課時 Not Null Mark 文本 學分 Not Null 7.學生成績表( Result): 字段名 數(shù)據(jù)類型 說明 是否為空 是否為關鍵字 ID 文本 學生學號 Not Null Primary Key Name 文本 課程名稱 Not Null Primary Key Score 文本 分數(shù) Not Null Remark 文本 備注 Not Null 2. 2 系統(tǒng)流程圖 登陸表單(管理員或者普通用戶身份登陸) Splash 表單 MDI 主窗口 (系統(tǒng)主窗口) 管理學生學籍信息(學生基本信息管理,課程管理,專業(yè) /學院管理和考試成績管理 管理系統(tǒng)用戶(添加,刪除) 對學生信息進行查找(按學號或姓名) 返回查詢信息 管理員登陸 重新登陸 16 圖 系統(tǒng)流程圖 2. 3 系統(tǒng)功能分析 系統(tǒng)開發(fā)的目標是實現(xiàn)學生學籍管理的系統(tǒng)化、規(guī)范化和自動化,這是在 用戶要求的基礎上提出來的,功能要求如下: (一)學生信息管理:能對學生信息進行添加、修改、刪除。 (二 )課程管理:對課程進行添加、修改、刪除操作。 (三)專業(yè) /學院設置: (三)考試成績管理: (四)查詢學生信息:根據(jù)學號或姓名對學生信息進行精確 /模糊查詢 (五)用戶管理:定義使用本系統(tǒng)的用戶名稱及密碼 第三章 系統(tǒng)具體實現(xiàn) 經過需求分析、功能模塊設計之后要進入詳細設計階段,本階段將按系統(tǒng)的主要模塊進行論述,重在闡述具體的某項功能的實現(xiàn)方法或運用到的相關技術。 3. 1 準備工作 1. 添加引用:單擊工程菜單中的引用選項,添加 Microsoft ActiveX Data Objects Library 和 Microsoft Excel Object Library 兩個引用。 2. 添加部件:單擊工程菜單中的部件選項,添加 Microsoft ADO Data Control (OLEDB)、 Microsoft Common Dialog Control (SP3) 、 Microsoft FlexGrid Control 、 Microsoft Windows Common Controls (SP4)和Microsoft Windows Common Controls2 五項。 3. 2 模塊設計 添加兩個模塊 module1 和 module2,在 module1 中添加如下代碼 Option Explicit Global con As New Global rs As New Global classid As String, stuid As String Global LoginUser As String, LoginPower As String LoginUser 記錄當前登陸用戶的用戶名 ,LoginPower 記錄當前登陸用戶的權限 Dim Userid As String, Userpwd As String, Username As String, Userpower As String 17 Dim sqlstr As String Sub Main() If = True Then MsgBox 注意程序已經運行,不能再次裝載! , vbOKOnly Exit Sub Else Provider=。Data Source=amp。+\ End If End Sub 在 module2 中添加代碼 (MD5 算法 ) 詳細代碼見程序中 3. 3 用戶界面實現(xiàn) 3. 3. 1 登陸界面 (frmlogin) 因為本系統(tǒng)是按學籍管理的思想設計的,故而登陸部分主要完成密碼校驗、確定管理員等功能,對于密碼本系統(tǒng)采用的是 MD5 算法。這里附上本程序的登陸界面,見圖 。 圖 用戶登陸界面 在代碼窗口的“ 通用”部分,定義一個模塊級的公共變量 loginno 用來記錄當前密碼輸入錯誤的次數(shù) Dim loginno As Integer 在 Form 的 Load 事件中,將 txtuser 設置為焦點,初始化 loginno。 Private Sub Form_Load() loginno = 0 18 End Sub 這里將“確定”和“取消”兩個按鈕作為一個按鈕數(shù)組 cmdOkCancel:確定按鈕的 index 屬性為 0,取消按鈕的 index 屬性為 1。 利用 SQL 語句,在數(shù)據(jù)庫中查詢,如果查到相應的記錄,則調用 Case 0 事件,用戶的登陸獲得通過,此時可以退出登陸窗口,并進入 MDI主窗口,同時將用戶類型和用戶名分別傳遞到 MDI 主窗口和 frmmanage 中;如果沒有相應的記錄,則給出提示錯誤信息,同時將用戶輸入錯誤密碼次數(shù)增加 1,如果錯誤超過 3次,則退出整個系統(tǒng);若次數(shù)還沒有超過 3次,則提示用戶重新輸入。 根據(jù)以上的設計, cmdOkCancel 的 Click 事件的代碼如下: Private Sub cmdOkCancel_Click(Index As Integer) Select Case Index Case 0 ?? Userid = Trim() Userpwd = MD5(Trim()) sqlstr = select * from UserInfo where UserID=39。 amp。 Userid amp。 39。 sqlstr, con, 1, 1 If Not Then If rs(UserPWD) Userpwd Then 39。密碼錯誤時 MsgBox 您輸入的密碼不正確! , vbQuestion = 請輸入用戶名和密碼: loginno = loginno + 1 39。當錯誤的密碼次數(shù)達到 3次時,不能登陸,退出! If loginno = 3 Then MsgBox 對不起,您不能使用該系統(tǒng)!請與管理員聯(lián)系。 , vbInformation Unload Me Exit Sub 19 End If ?? Else LoginUser = Userid 39。保存當前登陸用戶名 LoginPower = (3) 39。將當前登陸用戶的權限保存到 LoginPower 中 Unload Me End If Else MsgBox 沒有您輸入的用戶名! , 32 ?? End If : Set rs = Nothing Case 1 ‘ 退出整個程序 Unload Me End Select End Sub 3. 3. 2 MDI 主窗口 (frmmain) 本系統(tǒng)采取多文檔界面 (MultiDocument Interface)。多文檔界面是 一種Wi