冰凍三尺 之「系統登入對話方塊」

2021-08-27 04:21:09 字數 3187 閱讀 7640

冰凍三尺

之「系統登入對話方塊」

點滴積累帶來巨大進步。系統登入對話方塊,這是我做的第乙個和系統沾邊的小例子,說沾邊也只能說是名字中有「系統」兩個字,雖然很簡單,但是卻值得積累著其中的點點滴滴。因為點滴積累帶來巨大的進步。

例子雖然小,但是該做的一點也不能省,首先給自己做了乙個流程。

第一部分

建立資料庫

備註:用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...

冰凍三尺,非一日之寒 車聯網核心技術提公升是重中之重

由此看來,車聯網已然是大勢所趨,而在此背景下,如何做好車聯網 則成為業界下一步需要解決的重要課題。近日,鈦馬資訊網路技術 副總裁陸維琦便就該問題與蓋世汽車網記者進行了深入交流,期間特別強調,想要真正做好車聯網,相關企業 急不得 提公升自身核心實力並加深對本土市場的了解才是首要之舉。眾所周知,國內外汽...