a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 學院 > 開發設計 > 正文

VisualBasic中DataCombo和DataList控件的使用

2019-11-18 17:43:14
字體:
來源:轉載
供稿:網友

使用DataCombo和DataList控件

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

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

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

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

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

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

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

    注意DataList和DataCombo控件也可以與單個數據控件一起使用。要實現這一點,可以將DataSource和RowSource屬性設置為同一個數據控件,并且將DataField和BoundColumn屬性設置為該數據控件的記錄集中的同一個字段。在這種情形下,將使用ListField的值來填充該列表,且這些值來自于被更新的同一個記錄集。如果指定了一個ListField屬性,但沒有設置BoundColumn屬性,則BoundColumn將自動被設置為ListField字段。
    詳細信息如果想使用DataCombo控件循序漸進地創建一個簡單的數據庫應用程序,請參閱“創建一個簡單的DataCombo應用程序”。

->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品在线播放 | 青草青在线视频 | 亚洲男人天堂2023 | 免费 视频 1级 | 日韩午夜在线视频 | 羞羞视频在线免费 | 日本在线视频观看 | 国产精品久久久久一区二区三区 | 中国一级大黄大黄大色毛片 | 男女色啪网 | 日日爱视频 | 高清不卡一区 | 国产精品毛片无码 | 国产精品国产三级国产专业不 | 国产精品久久久久久久久久妞妞 | 国产日韩欧美一区 | 欧美视频在线免费 | 青青草原国产在线观看 | 午夜影院a| 欧美日韩精品一区二区三区在线观看 | 国产成人一区 | 狠狠的干 | 蜜臀视频在线观看 | 精品一区二区在线播放 | 欧美精品免费在线观看 | 久久99国产一区二区三区 | 日韩成人精品在线 | 久久99国产精一区二区三区 | 亚洲一区二区三区中文字幕 | 黄色网址在线免费观看 | 午夜看片 | 国产一区二区三区久久 | 羞羞视频免费观看入口 | 嗯嗯嗯亚洲精品国产精品一区 | 国产一区二区免费视频 | 在线日本中文字幕 | 国产精品久久久久久久久久三级 | 国产精品高清在线 | 欧美中文字幕一区二区 | 日韩 国产 欧美 | 免费一级在线观看 |