機房收費係統之組合查詢
增刪改查,數據庫中最基本的四個操作。不論是學生信息管理係統,還是機房收費係統,它們一個都不少。這一次,就來說說“查”。剛開始,看到機房收費係統的查詢,傻眼了,橫看,四個Label框,所謂的查詢條件;豎看,多個文本框、組合框。


在運行了很多次係統之後,終於越來越有思路了。
首先,我們很清楚查詢的兩種形式:簡單查詢和組合查詢。這兩者的劃分,組合關係的選擇就是關鍵了。
所以,根據上麵所給的各個控件,我們可以自由選擇是簡單查詢還是組合查詢。不管做什麼,思路很重要,思路決定出路。下麵是自己對組合查詢的思路梳理:

簡單地說,也就是如果想要進行組合查詢,在將查詢條件填寫完整的前提下,必須將組合關係也填寫上,否則,查詢失敗。

下麵是關於查詢的代碼,自己也是采用了兩種方法運行。也就是采用了不同的方法將文本框中的字段轉換為SQL中的字段,即是否調用函數。
一.直接寫查詢代碼。
首先進行轉化:
<span ><strong>'將組合框中的選中字段轉化為SQL語句中的字段
If comboFieldOne.Text = "卡號" Then comboFieldOne.Tag = "UserCardID"
If comboFieldOne.Text = "學號" Then comboFieldOne.Tag = "ClassNo"
If comboFieldOne.Text = "姓名" Then comboFieldOne.Tag = "UserName"
If comboFieldOne.Text = "性別" Then comboFieldOne.Tag = "sex"
If comboFieldOne.Text = "性別" Then MsgBox "請填寫男、女", vbOKOnly + vbExclamation, "警告"
If comboFieldOne.Text = "係別" Then comboFieldOne.Tag = "Department"
If comboFieldOne.Text = "年級" Then comboFieldOne.Tag = "grade"
If comboFieldOne.Text = "班級" Then comboFieldOne.Tag = "class"</strong></span>
接著進行查詢:
<span ><strong>'判斷已選擇準確的查詢條件一
If comboFieldOne.Text = "" Then
MsgBox "字段不能為空,請輸入第一個查詢字段!", vbOKOnly + vbExclamation, "警告"
comboFieldOne.SetFocus
Exit Sub
Else
If comboOperationOne.Text = "" Then
MsgBox "操作符不能為空,請輸入第一個操作符!", vbOKOnly + vbExclamation, "警告"
comboOperationOne.SetFocus
Exit Sub
Else
If txtInquireOne.Text = "" Then
MsgBox "查詢內容不能為空,請輸入第一個查詢內容!", vbOKOnly + vbExclamation, "警告"
txtInquireOne.SetFocus
Exit Sub
End If
End If
'查詢語句一
strTxtSQL = "select * from tb_StudentInformation where (" & comboFieldOne.Tag & comboOperationOne.Text & "'" & txtInquireOne.Text & "'"
</strong></span>
每選擇一個查詢條件,隻要將strTxtSQL語句聯結即可。
二.調用函數編寫的代碼。
<span ><strong>Public Function FieldName(StrFieldName As String) As String '判斷選擇字段函數
Select Case StrFieldName
Case "卡號"
FieldName = "UserCardID"
Case "姓名"
FieldName = " UserName"
Case "上機日期"
FieldName = "OnlineDate"
Case "上機時間"
FieldName = "OnlineTime"
Case "下機日期"
FieldName = "LineDate"
Case "下機時間"
FieldName = "LineTime"
Case "消費金額"
FieldName = "Cost"
Case "餘額"
FieldName = "ExtraMoney"
Case "備注"
FieldName = "Comment"
。。。。。。
End Select
End Function
Public Function ComboInquire(StrCombo As String) As Boolean '定義函數:判斷是否是組合查詢
If StrCombo = "" Then
ComboInquire = False
Else
ComboInquire = True
End If
End Function</strong></span>
兩者本質上其實一樣,隻是采用第二種,代碼量不大。
上麵的是機房收費係統的查詢,下麵不如拿它和學生管理的查詢比較一下。

應該都記得,學生中的查詢走到哪兒都是這三個複選框,可以選擇多個,也可以隻選擇一個。這就看到了機房查詢和它的相同之處了。
查詢語句都是單個SQL或者多個SQL間的聯結。
學生查詢SQL句:

機房查詢SQL句:


這一路,還是不要瞎想,還是不要恐懼,隻要去做,什麼都可以的。
最後更新:2017-04-03 05:39:53
上一篇:
Android Lint的使用
下一篇:
java對象和json數據轉換實現方式1-使用json-lib實現
《HttpClient官方文檔》2.8 HttpClient代理配置
視頻直播應該怎麼選擇服務器
比較C語言標準I/O與*nix係統I/O的異同
System.BadImageFormatException: 未能加載文件或程序集“Oracle.DataAccess”或它的某一個依賴項。試圖加載格式不正確的程序。
poj1523 割頂
《Linux From Scratch》第二部分:準備構建 第五章:構建臨時文件係統- 5.34. Xz-5.2.0
1.順序表的查找運算
阿裏雲前端周刊 - 第 14 期
當計算停留著網格內 Mellanox用智能網絡助跑AI
API Demos 2.3 學習筆記 (10)-- Views->WebView