冰凍三尺
之「系統登入對話方塊」
點滴積累帶來巨大進步。系統登入對話方塊,這是我做的第乙個和系統沾邊的小例子,說沾邊也只能說是名字中有「系統」兩個字,雖然很簡單,但是卻值得積累著其中的點點滴滴。因為點滴積累帶來巨大的進步。
例子雖然小,但是該做的一點也不能省,首先給自己做了乙個流程。
第一部分
建立資料庫
備註:用vb
本身自帶的資料庫功能建立資料庫。
注意事項:資料庫雖然小,並且簡單,但是每一步都要注意,因為也是剛接觸資料庫應用,說不定什麼地方就會出問題
第二部分
窗體設計
備註:簡單熟練。很容易完成
注意事項:最最值得注意的就是控制項的命名規則。這時候已經開始真正的寫**,雖然現在都在看著敲,該注意的一點都不能含糊。
第三部分
建立起ado引用
備註,實話是不是很懂。
注意事項:
既然不懂,那麼就在實踐中慢慢體悟
第四部分
編寫功能**
備註,**要先看懂,然後在敲
注意事項:
要了解其中的真正的聯絡,不要覺得自己懂了,要真正的懂。
第五部分
儲存工程,測試執行。
簡單的將這個小例子分成了這麼五個部分,然後就是開始做了。資料庫的建立,不是太困難,只是覺得還有點生疏,不過也很快建立完成了。介面設計業沒什麼出彩的地方,放上幾個控制項也算完事了,
ado
引用更好弄新增上就行了。當然最最困難的還是**部分。
**分三部分,取消按鈕的**,確定按鈕的**,再就是為了驗證使用者名稱和口令而建立的乙個函式的**。
其中取消按鈕**的部分最簡單,不在贅言。而函式部分的**比較複雜,可以分成這麼幾部分:建立資料庫,執行查詢命令獲得使用者口令,判斷有無這個查詢結果,檢查口令是否正確,關閉資料庫連線釋放物件,驗證無法正常完成而返回的**。做這種例子的時候,一般閒寫上注釋,然後在往注釋下邊寫**,**寫完了,注釋就刪掉。當所有的注釋都刪掉的時候,整個程式就已經弄的狠明白了。下面就是函式**
privatefunction check_password(byval username as string, byval password as string) asbyte
on error goto gperror
dim objcn as new connection, objrs as newrecordset, strcn as string
dim strsql as string
objcn.open
strsql = "select 口令 from 系統使用者 where 使用者名稱= '" & username & "'"
set objrs.activeconnection = objcn
objrs.open (strsql)
if objrs.eof then
check_password = 0
else
if password <>trim(objrs.fields("口令").value) then
check_password = 1
else
check_password = 2
end if
end if
objcn.close
set objrs = nothing
set objcn = nothing
exit function
gperror:
check_password = 255
set objrs = nothing
set objcn = nothing
end function
還有就是確定按鈕,其實結構比較簡單主要是判斷函式返回值的含義做出明確指示。**如下:
privatesub cmdok_click()
static intlogtimes as integer
dim intchecked as integer, strname asstring, strpassword as string
intlogtimes = intlogtimes + 1
if intlogtimes > maxlogtimes then
msgbox "超過允許的登入次數" &vbcr _
&"應用程式將結束", vbcritical, "登入驗證"
endelse
strname = trim(txtusername.text)
strpassword = trim(txtpassword.text)
select case check_password(strname,strpassword)
case 0
msgbox "<" &strname & _
">不是系統使用者,請檢查使用者名稱輸入是否正確", vbcritical, "登入驗證"
case 1
msgbox "口令錯誤,請重新輸入",vbcritical, "登入驗證"
txtpassword = ""
txtpassword.setfocus
case 2
unload me
load frmsplash
frmsplash.show
case else
msgbox "登入失敗'未正常完成,請重新登入, "& vbcrlf _
&"如果仍不能登入,請報告系統管理員", vbcritical, "驗證登入"
end select
end if
end sub
當然看著簡單,而且是看著寫的,這其中反應出的問題仍然很大。總結一下下次注意。
首先就是空格的使用,不知道什麼時候養成了乙個沒事點下空格的習慣,這給自己帶來了很多不必要的麻煩,有的地方或許多個空格沒有什麼關係,可是有的地方多了乙個空格怎麼都執行不過去。其次就是命名問題,好的命名不是以長短來判斷的,而是是否真正的給你帶來了方便,不要圖一時之快就命那種看著沒水平,用著不方便的類似
a 的這種命名,這樣會給自己帶來很多不必要的麻煩,尤其是控制項或者函式越來越多的情況,我們自己找都頭痛,又怎麼給別人看我們的**呢?再次就是格式問題,要錯落有致,該縮的就縮,給自己帶來的方便也是不言而喻的。
執行通過自然也就完事了,可是完事之前我還進行了好長時間的**除錯,不過沒什麼經驗可言,寫到此,自己引以為戒,此次積累就是下次的進步。
冰凍三尺 之「全新全意為人民服務」
冰凍三尺 之 全新全意為人民服務 使用資料庫繫結訪問資料 這個例子很簡單,控制項一共用了超不過五種,一共就一行。整個過程也就是新增了幾個控制項然後設定了一下屬性就 ok了。過程不複雜實現也簡單。本來覺得沒什麼可總結的,可是仔細想想卻發現了乙個比較重要的思想性的問題。為什麼實現了這麼乙個不算複雜但也不...
三 Qt Creator登入對話方塊
實現功能 在彈出對話方塊中填寫使用者名稱和密碼,按下登入按鈕,如果使用者名稱和密碼均正確則進入主視窗,如果有錯則彈出警告對話方塊。實現原理 通過上節的多視窗原理實現由登入對話方塊進入主視窗,而使用者名稱和密碼可以用if語句進行判斷。實現過程 2.然後新建乙個qt designer form clas...
冰凍三尺,非一日之寒 車聯網核心技術提公升是重中之重
由此看來,車聯網已然是大勢所趨,而在此背景下,如何做好車聯網 則成為業界下一步需要解決的重要課題。近日,鈦馬資訊網路技術 副總裁陸維琦便就該問題與蓋世汽車網記者進行了深入交流,期間特別強調,想要真正做好車聯網,相關企業 急不得 提公升自身核心實力並加深對本土市場的了解才是首要之舉。眾所周知,國內外汽...