免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
VB中DataCombo 和 DataList 控件的使...
使用 DataCombo 和 DataList 控件

    DataCombo 和 DataList 控件與標(biāo)準(zhǔn)列表框和組合框控件極為相似,但有一些重要的不同之處,這種不同使這兩個控件在數(shù)據(jù)庫應(yīng)用程序中具有極大的適應(yīng)性和用武之地。這兩個控件都可以被這些控件所綁定的數(shù)據(jù)庫字段自動填充。此外,它們還能有選擇地將一個選定的字段傳遞給第二個數(shù)據(jù)控件,從而適合用于創(chuàng)建“查找表”應(yīng)用程序。
    可能的用法
    1.在一個關(guān)系數(shù)據(jù)庫中,使用一個表的數(shù)據(jù)來提供要輸入給第二個(相關(guān)的)表值。例如,在一個存貨清單數(shù)據(jù)庫中,供應(yīng)商的名稱存儲在一個表中,每個供應(yīng)商都有一個唯一的標(biāo)識符。另一個顯示產(chǎn)品的表則使用這些標(biāo)識符來表明是哪個供應(yīng)商供應(yīng)的該產(chǎn)品。可以使用 DataList 控件來顯示供應(yīng)商的名稱,而(不可見地)將供應(yīng)商的標(biāo)識符提供給產(chǎn)品表。
    2.允許用戶通過從一個下拉列表中選擇一種標(biāo)準(zhǔn)來縮小搜索范圍。例如,一個銷售報告的數(shù)據(jù)庫應(yīng)用程序可以使用一個 DataList 控件讓用戶選擇一個州 (State) 或一個銷售區(qū)域。一旦作出選擇,則該選擇項(xiàng)將自動傳遞給第二個數(shù)據(jù)控件,這個控件負(fù)責(zé)查找選定區(qū)域的銷售記錄。
    與它們對應(yīng)的內(nèi)在控件一樣,DataList 和 DataCombo 控件之間的主要不同在于 DataCombo 控件提供了一個可以在其中編輯內(nèi)容的文本框。
    詳細(xì)信息 有關(guān) DataList 和 DataCombo 控件連接數(shù)據(jù)庫表能力的說明,請參閱“使用 DataCombo 和 DataList 控件連接兩個表”。 要創(chuàng)建一個簡單的使用鏈接表的數(shù)據(jù)庫應(yīng)用程序,請參閱“創(chuàng)建一個簡單的 DataCombo 應(yīng)用程序”。

    值得注意的控件屬性
    DataList 和 DataCombo 控件的一些重要屬性包括:

    注意 DataCombo 控件的 DataFormat 屬性是一個 Extender 屬性。因此在屬性表上它總是可見的,并且可以在代碼中設(shè)置。然而,DataCombo 控件僅對其列表中最上端的項(xiàng)格式化。對于看到已格式化的頂端項(xiàng)的最終用戶來說,這一點(diǎn)可能不太重要,只要從未格式化的列表中選擇即可。已格式化的項(xiàng)可能也會誤導(dǎo)最終用戶,使他們以為項(xiàng)目要在格式化之后再輸入數(shù)據(jù)庫。由于這些原因,建議在使用 DataCombo 控件時不要設(shè)置 DataFormat 屬性。
    詳細(xì)信息 如果要使用一個演示 BoundText 屬性用法的循序漸進(jìn)教程,請參閱“創(chuàng)建一個連接 DataList 控件的 DataGrid”。關(guān)于這些控件的屬性和方法的完整列表,請參閱“DataList 控件”和“DataCombo 控件”。

    使用 DataCombo 和 DataList 控件連接兩個表
    DataCombo 和 DataList 控件與眾不同的特性是具有訪問兩個不同的表,并且將第一個表的數(shù)據(jù)鏈接到第二個表的某個字段的能力。這是通過使用兩個數(shù)據(jù)源完成的(諸如 ADO Data 控件或Data環(huán)境)。

    關(guān)系表和“不友好的”值
    在一個關(guān)系數(shù)據(jù)庫中,對于重復(fù)使用的信息并不是在多個地方都保存其全部的信息。大多數(shù)這種信息都保存在由多個字段組成的一個記錄集中;在這些字段中有一個“標(biāo)識符”字段來唯一地標(biāo)識這個記錄集。例如,VisualBasic 提供的 Biblio 數(shù)據(jù)庫在一個名為 "Publishers" 的表中存儲了若干個出版公司的名稱。這個表包括很多字段,諸如地址、城市、郵政編碼以及電話號碼等。但是為了簡單起見,只考慮這個表的兩個本質(zhì)字段 Name 和PubID 字段。Name 字段存儲一個出版商的名稱,而 PubID 字段則存儲一個相對“不友好的”值,如一個數(shù)或代碼。但這個不友好的值是很重要的,因?yàn)檫@個值唯一地標(biāo)識該出版商,并且可以作為一種鏈接整個記錄集的手段。此外,這個值會存儲在第二個表中的多個記錄集中。
    第二個表的名稱為 "Titles",其每個記錄集包含的信息包括標(biāo)題、出版年份、國際標(biāo)準(zhǔn)書號 ISBN 等。在這些字段中有一個字段的名稱就是 "PubID"。這個字段的名稱與 Publishers 表中的相應(yīng)字段的名稱相同,因?yàn)檫@個字段存儲了將該標(biāo)題和一個特定的出版商鏈接在一起的值。
    這種可行方案提出了一個小問題:給定一個允許用戶插入新標(biāo)題的數(shù)據(jù)庫應(yīng)用程序,用戶必須用某種方法輸入標(biāo)識出版商的整數(shù)。如果用戶能記住每個出版商的唯一標(biāo)識符,那么也還是可行的,不過如果一方面用戶能看到出版商的名稱,另一方面存入應(yīng)用程序的又是數(shù)據(jù)庫中相應(yīng)的值,則會顯得更加方便。而 DataList 和 DataCombo 控件就可以輕松地解決這個問題。

    兩個數(shù)據(jù)源、三個字段、無編碼
    DataList 和 DataCombo 控件使用兩個數(shù)據(jù)源來解決這個問題。在只顯示出版商的名稱(來自 Publishers 表)的同時,DataList 或 DataCombo 控件只將 PubID 字段的值寫入到 Titles 表。通過“屬性”窗口,將 RowSource設(shè)置為提供要寫入的數(shù)據(jù)的數(shù)據(jù)源(即 Publishers 表)。然后將 DataSource屬性設(shè)置為要寫入數(shù)據(jù)的數(shù)據(jù)源(即 Titles 表)。最后,設(shè)置 DataField、ListField以及 BoundColumn 屬性。下圖演示了如何將兩個數(shù)據(jù)源(以兩個Data 控件的形式)以及三個字段指定給一個 DataCombo 控件:

簡要而言,ListField 屬性決定該控件所顯示的是哪一個字段。在本例中就是出版商的名稱。另一方面,BoundColumn 屬性則決定 Publishers 表中由哪一個字段向 Title 表供應(yīng)實(shí)際所需的值。注意 Publishers 表中的 PubID字段不能(也不應(yīng)該)被編輯。相反,在 PubID 字段中的值將寫入到由DataField 屬性所指定的字段。在本例中,這個屬性就是 Titles 表中的 PubID字段。
    下表概要地介紹這些屬性及其使用方法。

    注意 DataList 和 DataCombo 控件也可以與單個數(shù)據(jù)控件一起使用。要實(shí)現(xiàn)這一點(diǎn),可以將 DataSource 和 RowSource 屬性設(shè)置為同一個數(shù)據(jù)控件,并且將 DataField 和 BoundColumn 屬性設(shè)置為該數(shù)據(jù)控件的記錄集中的同一個字段。在這種情形下,將使用 ListField 的值來填充該列表,且這些值來自于被更新的同一個記錄集。如果指定了一個 ListField 屬性,但沒有設(shè)置 BoundColumn 屬性,則 BoundColumn將自動被設(shè)置為 ListField 字段。
    詳細(xì)信息 如果想使用 DataCombo 控件循序漸進(jìn)地創(chuàng)建一個簡單的數(shù)據(jù)庫應(yīng)用程序,請參閱“創(chuàng)建一個簡單的 DataCombo 應(yīng)用程序”。
創(chuàng)建一個簡單的 DataCombo 應(yīng)用程序
    下面的示例使用 DataCombo 控件為 Northwind.mdb 示例數(shù)據(jù)庫的 Titles表創(chuàng)建一個數(shù)據(jù)輸入界面。這個輸入界面使用戶可以輸入新的產(chǎn)品,并通過提供一個包括所有供應(yīng)商名稱的查找表將這些新產(chǎn)品指定到已有的供應(yīng)商。當(dāng)用戶在輸入窗體中要輸入供應(yīng)商字段的值時,他們可以從一個列表框中選擇一個供應(yīng)商。當(dāng)他們選定一個供應(yīng)商后,該供應(yīng)商的 SupplierID 字段值就復(fù)制到 Products 表的 SupplierID 字段。
    要使用 DataCombo 控件來創(chuàng)建一個查找表
    1. 給 Northwind 數(shù)據(jù)庫創(chuàng)建一個OLEDB 數(shù)據(jù)源。如果還沒有創(chuàng)建數(shù)據(jù)源,請按照“創(chuàng)建 Northwind 的OLEDB 數(shù)據(jù)源”中的步驟進(jìn)行。
    2. 在Visual Basic 中創(chuàng)建一個新的標(biāo)準(zhǔn)的 EXE 工程。如果DataGrid、DataCombo或ADO Data控件不在“工具箱”中,則右鍵單擊“工具箱”,然后使用“部件”對話框來添加控件。
    3. 添加一個 DataCombo 控件、兩個 ADO Data 控件以及一個 DataGrid 控件到窗體中。4. 在“屬性”窗口中,如下表所示設(shè)置第一個數(shù)據(jù)控件 (Adodc1) 的屬性。
    4. 在“屬性”窗口中,如下表所示設(shè)置第一個數(shù)據(jù)控件 (Adodc1) 的屬性。

    5. 在“屬性”窗口中,如下表所示設(shè)置第二個數(shù)據(jù)控件 (Adodc2) 的屬性。

    6. 在“屬性”窗口中,如下表所示設(shè)置 DataGrid 控件的屬性。

    7. 在“屬性”窗口中,如下表所示設(shè)置 DataCombo 控件的屬性。

    8. 最后,將下述代碼添加到該窗體的代碼模塊中:
     Private Sub Form_Load()
       ' 在 DataGrid 控件中隱藏 SupplierID 字段,使用戶
       ' 不會混淆到底該更改哪一個值。
     grdProducts.Columns("SupplierID").Visible = False
     End Sub
    9. 運(yùn)行該工程。
    可以通過單擊可視的 ADO Data 控件上的箭頭來瀏覽記錄集。如果這樣做,DataCombo 控件將更新和顯示每一個產(chǎn)品的供應(yīng)商的名稱。如果要編輯SupplierID 字段,則單擊 DataCombo 控件的箭頭來顯示一個下拉列表,然后再單擊一個不同的供應(yīng)商,來改變寫入到 SupplierID 字段的值。 
 
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
DataReader與DataSet,DataGrid與DataList
[轉(zhuǎn)]C# Eval在asp.net中的用法及作用
vs 2005 的控件區(qū)別
窗體常用屬性及其含義
DataSnap(MIDAS)三層架構(gòu)編程中,DataSetProvider的Option屬性
Access教程 第四章 報表
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服