程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB6 >> vb控件的使用(一)

vb控件的使用(一)

編輯:VB6

使用ADO Data控件
ADO Data控件使用MicrosoftActiveX數據對象(ADO)來快速建立數據綁定的控件和數據提供者之間的連接。數據綁定控件是任何具有“數據源”屬性的控件。數據提供者可以是任何符合OLE DB規范的數據源。使用Visual Basic的類模塊也可以很方便地創建子集的數據提供者。
盡管可以在應用程序中直接使用ActiveX數據對象,但ADO Data控件有作為一個圖形控件的優勢(具有“向前”和“向後”按鈕),以及一個易於使用的界面,使您可以用最少的代碼創建數據庫應用程序。

在Visual Basic的“工具箱”中,不少控件都可以作為數據綁定的控件,包括復選框、組合框、圖像、標簽、列表框、圖片框以及文本框控件等。此外,Visual Basic還包括了若干種數據綁定的ActiveX控件,諸如DataGrid、DataCombo、Chart以及 DataList控件等。用戶也可以創建自己的數據綁定的ActiveX控件,或從其他開發商購買控件。
Visual Basic以前的版本提供了內在的 Data 控件和 Remote Data 控件(RDC) 來進行數據訪問。這兩種控件仍包括在 Visual Basic中,以提供向後兼容。不過,因為 ADO 的適應性更廣,因此建議用戶使用ADO Data控件來創建新的數據庫應用程序。
詳細信息 關於數據綁定的控件的完整列表位於“綁定到ADO Data控件的控件”中。要了解如何使用這些內在的Data 控件或 Remote Data 控件,請參閱“使用 Data 控件”或“使用 Remote Data 控件”。關於創建數據提供者的詳細信息,請參閱“創建數據識別類”。

可能的用法
連接一個本地數據庫或遠程數據庫。
打開一個指定的數據庫表,或定義一個基於結構化查詢語言 (SQL) 的查詢、或存儲過程、或該數據庫中的表的視圖的記錄集合。
將數據字段的數值傳遞給數據綁定的控件,可以在這些控件中顯示或更改這些數值。
添加新的記錄,或根據對顯示在綁定的控件中的數據的任何更改來更新一個數據庫。
要創建一個客戶或前端數據庫應用程序,應在窗體中添加ADO Data控件,以及其它所需要的任何 Visual Basic控件。可以根據您的需要在窗體中放置多個ADO Data控件。不過,請注意,這種控件是一種相當“昂貴”的創建連接的方法,應在第一個控件至少有兩個連接,且以後的每個控件至少多一個連接時使用。

用最少的代碼創建一個前端數據庫應用程序
通過在設計時設置一些屬性,可以用最少的代碼來創建一個數據庫應用程序。如果正在使用OLE DB 數據源,則相應的Microsoft 數據鏈接名稱(DataLink Name)(.MDL) 必須是在您的機器上創建的。請參閱“創建 Northwind的OLE DB Data Link”,以獲得一個循序漸進的示例。
要創建一個簡單的前端數據庫應用程序:
1. 在窗體上放置一個ADO Data控件(該圖標的工具提示為 "ADODC")如果該控件不在“工具箱”中,請按 CTRL+T 鍵,顯示“部件”對話框。在這個“部件”對話框中,單擊“MicrosoftADO DataControl”。
2. 在“工具箱”中,單擊選定“ADO Data控件”。然後按 F4 鍵顯示“屬性”窗口。
3. 在“屬性”窗口中,單擊“ConnectionString”顯示“ConnectionString”對話框。
4. 如果您已經創建了一個 Microsoft 數據鏈接文件(Data Link file)(.MDL),請選擇“使用 OLE DB 文件”並單擊“浏覽”,以找到計算機上的文件。如果使用 DSN,則單擊“使用 ODBC 數據源名”,並從框中選擇一個 DSN,或單擊“新建”創建一個。如果想創建一個連接字符串,請選擇“使用 ConnectionString”,單擊“生成”,然後使用“數據鏈接屬性”對話框創建一個連接字符串。在創建連接字符串後,單擊“確定”。ConnectionString 屬性將使用一個類似於下面這一行的字符串來填充:
driver={SQL Server};server=bigsmile;uid=sa;pwd=pwd;database=pubs
5. 在“屬性”窗口中,將“記錄源”屬性設置為一個 SQL 語句。例如:SELECT * FROM Titles WHERE AuthorID = 72在訪問一個表時,應始終包括一個 WHERE 子句。如果這樣做失敗,則會鎖定整個表,這樣對其他用戶將是一個嚴重的障礙。
6. 在窗體上再放置一個“文本框”控件,用來顯示數據庫信息。
7. 在其“屬性”窗口中,將 Text1 的“數據源”屬性設為ADO Data控件的名稱 (ADODC1)。這樣就將這個文本框和ADO Data控件綁定在一起。
8. 在其“屬性”窗口中,單擊“數據字段”將下拉得到一個可用的字段列表。單擊所要顯示的字段的名稱。
9. 對希望訪問的其它每個字段重復第 6、7、8 步。
10. 按 F5 鍵運行該應用程序。用戶可以在ADO Data控件中使用四個箭頭按鈕,從而允許用戶到達數據的開始、記錄的末尾或在數據內從一個記錄移動到另一個記錄。
在程序中設置 ConnectionString、Source、DataSource以及 DataField下面的代碼演示了如何在程序中設置這四個屬性。注意設置 DataSource 屬性要使用 Set 語句。
Private Sub Form_Load()
With ADODC1
.ConnectionString = "driver={SQL Server};" & _
"server=bigsmile;uid=sa;pwd=pwd;database=pubs"
. RecordSource = "Select * From Titles Where AuthorID = 7"
End With
Set Text1.DataSource = ADODC1
Text1.DataField = "Title"
End Sub

ADO Data 控件的事件
ADO Data控件提供了若干個可以編程的事件。下表說明了這些事件及其何時產生,不過這個表不是一個關於這些事件何時發生的所有條件的完整列表。更完整的信息,請參閱各個事件的參考主題。

詳細信息 如果試圖循序漸進地使用ADO Data控件,請參閱“使用DataGrid 和ADO數據控件創建一個簡單的數據庫應用程序”,“ 創建一個簡單的DataCombo應用程序”以及“創建一個連接 DataList控件的DataGrid”。

設置ADO Data控件的與數據庫相關的屬性
當創建連接時,您可以使用下列三種源之一:一個連接字符串,一個 OLE DB文件(.MDL),或一個 ODBC 數據源名稱(DSN)。當您使用 DSN 時,則無須更改控件的任何其它屬性。
不過,如果對數據庫技術比較了解,可以更改在ADO Data控件中出現的其它的一些屬性。下面的列表說明了該控件的與數據庫相關的一些屬性。這個列表同時也建議了設置這些屬性的邏輯順序。
注意 數據庫技術是比較復雜的,下列的建議並不意味著一定要視為規則。
1. ConnectionString—ConnectionString 屬性是一個字符串,可以包含進行一個連接所需的所有設置值。在該字符串中所傳遞的參數是與驅動程序相關的。例如,ODBC 驅動程序允許該字符串包含驅動程序、提供者、缺省的數據庫、服務器、用戶名稱以及密碼等。
2. UserName—用戶的名稱,當數據庫受密碼保護時,需要指定該屬性。和Provider 屬性類似,這個屬性可以在 ConnectionString 中指定。如果同時提供了一個 ConnectionString 屬性以及一個 UserName 屬性,則ConnnectionString 中的值將覆蓋 UserName 屬性的值。
3. Password—在訪問一個受保護的數據庫時也是必需的。和 Provider 屬性、 UserName 屬性類似,如果在ConnectionString 屬性中指定了密碼,則將覆蓋在這個屬性中指定的值。
4. RecordSource—這個屬性通常包含一條語句,用於決定從數據庫檢索什麼信息。
5. CommandType—CommandType 屬性告訴數據提供者 Source 屬性是一條 SQL 語句、一個表的名稱、一個存儲過程還是一個未知的類型。
6. CursorLocation—這個屬性指定光標的位置,是位於客戶還是位於服務器
上。這一決策將影響您對下面幾個屬性的設置。
7. CursorType—CursorType 屬性決定記錄集是靜態類型、動態類型、還是鍵集光標類型。
8. LockType—LockType 屬性決定當其他人試圖更改您正在編輯的數據時,如何鎖定該數據。如何設置這個 LockType 屬性是一個復雜的決策,取決於多個因素。
9. Mode—Mode 屬性決定想用記錄集進行什麼操作。例如,如果只是想要創建一個報告,可以將該屬性設為只讀來獲得性能的改善。
10. MaxRecords—這個屬性決定光標的大小。如何決定這個屬性的值取決於所檢索的記錄的大小,以及計算機的可用資源(內存)的多少。一個大的記錄(包括很多列以及長字符串)比小記錄要花費更多的資源。因此,MaxRecords 屬性就不能太大。
11. ConnectionTimeout—設置等待建立一個連接的時間,以秒為單位。如果連接超時,則返回一個錯誤。
12. CacheSize—CacheSize 屬性指定從光標中可以檢索多少條記錄。如果將CursorLocation 設為客戶端,則這個屬性只能設為一個較小的數目(可能為1),不會有任何不利的影響。如果光標的位置位於服務器端,則可以對這個數進行調整,將其設為你希望一次可以查看的行數。例如,如果使用 DataGrid 控件來查看 30 行,則可以將 CacheSize 設為 60,這樣不必檢索更多的數據就可以進行滾動。
13. BOFAction、EOFAction—這兩個屬性決定當該控件位於光標的開始和末尾時的行為。提供的選擇包括停留在開始或末尾、移動到第一個或最後一個記錄、或添加一個新記錄(只能在末尾)。

綁定到ADO Data控件的控件
任何具有 DataSource 屬性的控件都可以綁定到一個ADO Data控件。下面的內在控件都可以綁定到ADO Data控件:
復選框(CheckBox)
組合框(ComboBox)
圖像(Image)
標簽(Label)
列表框(ListBox)
圖片框(PictureBox)
文本框(TextBox)
Visual Basic的所有版本中也提供下述數據綁定的ActiveX控件:
DataList
DataCombo
DataGrid
Microsoft Hierarchical FlexGrid
RichTextBox
Microsoft Chart
DateTimePicker
ImageCombo
MonthView
最後,用戶可以使用DataBinding對象創建自己的數據綁定的ActiveX控件。
詳細信息 關於自己創建數據綁定控件的詳細內容,請參閱“創建數據綁定用戶控件”。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved