摘要:該文主要論述了如何利用VB中的文本框、列表框與SQL Server中的數據表建立聯系,并用定時器實現動態選取號碼的功能,包括界面的設計、控件屬性的設置、具體實現的方法及代碼等。
關鍵詞: SQL Server;數據表;ADO;動態選號;定時器;文本框;列表框
中圖分類號:TP311文獻標識碼:A 文章編號:1009-3044(2008)23-874-02
Dynamically Select the Data of Table
ZHANG Guo-fang
(Henan Industry And Trade Vocational College Department of Computer Science, Zhengzhou 450012, China)
Abstract: The article primary treatise how to connect TextBox and ListBox of VB with the table of SQL Server,At the same time, realizing to select number with Timer,Including designning interface, putting control’s attribute、the method of implement and programming code.
Key words: SQL Server; Data Table; ADO; Automtic Select; Timer;TextBox;ListBox
1 創建數據表
在SQL Server 的企業管理器中創建一數據表,數據表包含有id、name、address、tel、number等五個字段,并輸入參與選號人員的信息。
2 設計界面
界面主要由一個文本、一個列表框、一個命令按鈕、一個ADO數據控件和定時器組成。設計界面如右圖1。
3 原理及實現
ADO對應的數據控件是ADODC,ADODC不是VB的基本控件,在使用ADODC之前需先在工具箱中添加ADODC控件,在窗體上添加一ADODC控件,使ADODC通過ODBC與SQL Server系統建立連接,并選擇數據源及數據表。用文本框顯示數據表中numbr字段數據。將文本框的DataSource屬性值設為Adodc1,DataFiled屬性值設為number(即所顯示的字段)。
設置各控件屬性值如表1所示。
在窗體的裝載窗體事件過程中,用While循環語句通過文本框實現把數據表中number字段的內容全部添加到列表框(list1)中,則程序一啟動列表框中就顯示出數據表中number字段的數據內容。程序代碼如下:
Private Sub Form_Load()
Adodc1.Recordset.MoveFirst
While Adodc1.Recordset.AbsolutePosition <> adPosEOF
list1.AddItem Text1.Text
Adodc1.Recordset.MoveNext
Wend
End Sub
定時器(Timer)可以實現每隔一定的時間間隔觸發一次Timer事件過程的執行。因此可以利用定時器實現動畫的制作、定時執行某個特定的操作或計時的功能等。現在我利用定時器與列表框配合使用來實現動態選取號碼的功能。具體實現方法如下:
為了能夠實現動態選取中獎號碼,在這里我使用定時進行對靜態變量i,定時器每觸發一次,Timer事件過程就執行一次,則靜態變量i的值就增加1,為能實現循環選號且保證i的值不越界,我采用if語句將變量i的值控制在0到列表框的項總數Listcount之間。然后把變量i的值賦給列表框的ListIndex屬性,從而實現動態選取中獎號。定時器的Timer事件過程代碼如下:
Private Sub Timer1_Timer()
Static i As Integer
If i >= list1.ListCount Then i = 0
list1.ListIndex = i
i = i + 1
End Sub
程序運行后,也可在文本框中輸入參加抽獎的號碼,并將輸入的號碼添加到列表框中。實現代碼如下:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
list1.AddItem Text1.Text
Text1.Text = \"\"
Text1.SetFocus
End If
End Sub
當單擊“開始”按鈕即可開始動態選號。當開始選號后,命令按鈕的Caption值同時變為“停止”。當單擊“停止”按鈕時則選中號碼,將被選中的號碼顯示在文本框中,同時用消息框給出中獎提示信息。此時命令按鈕Command1的Caption值變為“開始”。實現代碼如下:
Private Sub Command1_Click()
If Command1.Caption = \"開始(Start)\" Then
Timer1.Enabled = True
Command1.Caption = \"停止(End)\"
Else
Timer1.Enabled = False
Command1.Caption = \"開始(Start)\"
Text1.Text = list1.Text
MsgBox \"恭喜\" Text1.Text \"中獎了!\", 48, \"中獎提示\"
End If
End Sub
當抽獎結束或不再進行下一輪抽獎時,單擊標題欄上的退出按鈕結束程序的運行。
該文是本人在教學實踐中發現并得到驗證的,對其他從事可視化程序教學的教師有一定的參考價值,可作為教學中的例子來使用。
參考文獻:
[1] 姚巍.VisuaL Basic數據庫開發及工程實例[M].北京:人民郵電出版社,2004.
[2] 北京博彥科技發展有限責任公司,編譯.VisuaL Basic開發教程[M].北京:清華大學出版社,2000.
[3] 沈祥玖.VB程序設計[M].北京:高等教育出版社,2003.