資源描述:
《treeview 控件應用實例:將 treeview 綁定到 bibliomdb 數(shù)據(jù)庫》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。
1、TreeView控件應用實例:將TreeView綁定到Biblio.mdb數(shù)據(jù)庫應用示例:DataTree.vbp本章的代碼示例是從應用示例DataTree.vbpwhichislistedintheSamplesdirectory中得到的。可將數(shù)據(jù)庫中的數(shù)據(jù)綁定到TreeView控件。下面的示例將TreeView控件綁定到Biblio數(shù)據(jù)庫,該數(shù)據(jù)庫可以在VisualBasicCD中找到。該應用實例將Publishers表作為樹節(jié)點的第一層。如果一個出版商對應于一個或多個書名,則這些書名將作為該出版商的子節(jié)點加入樹中。圖2.42與數(shù)據(jù)綁定的TreeVew控件下面的代碼用到了如下對
2、象:DataAccessObjectLibrary(3.5)名為“frmDataTree”的Form對象名為“tvwDB”的TreeView控件名為“cmdLoad”的CommandButton控件將Biblio.mdb數(shù)據(jù)庫綁定到TreeView控件在工程中添加對數(shù)據(jù)訪問對象(DAO3.0)的引用。為Database和Node對象創(chuàng)建模塊級的變量。在FormLoad事件中,用OpenDatabase語句將Database對象變量設置為Biblio數(shù)據(jù)庫。用Nodes集合的Add方法創(chuàng)建頂層的節(jié)點對象。在CommandButton的Click事件中,創(chuàng)建兩個Recordset變量,
3、并將它們設置為Publishers和Titles表。用“DoUntil”語句為表中的每個出版商創(chuàng)建一個Node對象。對每個出版商,在Titles記錄集中檢查匹配的PubID字段;為每個匹配項添加一個子節(jié)點。在工程中添加對數(shù)據(jù)訪問對象(DAO3.5)的引用要將數(shù)據(jù)庫綁定到TreeView控件,必須先添加對當前版本的數(shù)據(jù)訪問對象(DAO)的引用。為Database對象和Node對象創(chuàng)建模塊級的變量由于需要在一個會話中多次訪問Biblio.mdb數(shù)據(jù)庫,如果創(chuàng)建一個模塊級的Database對象,保持一個打開數(shù)據(jù)庫,將有助于提高效率。此后,不需要打開數(shù)據(jù)庫即可訪問它。在窗體的聲明部分,鍵入
4、如下內(nèi)容:PrivatemDbBiblioAsDatabase如果希望該數(shù)據(jù)庫還可被其它模塊使用,可以用Public語句,并重命名該變量,以表明它是全局的,例如gDbBiblio。在創(chuàng)建Node對象時,在Set語句中(如下所示)使用Node類型的變量。DimTempNodeAsNodeSetTempNode=tvwDB.Nodes.Add()雖然可以在添加Node對象時創(chuàng)建變量,更有效的方式是聲明一個模塊級的Node對象變量,并用它創(chuàng)建所有的Node對象。在上述聲明部分再鍵入:PrivatemNodeAsNode用OpenDatabase語句將Database對象變量設置為Bibl
5、io數(shù)據(jù)庫Form對象的Load事件中可以初始化Database變量。代碼如下:SetmDbBiblio=DBEngine.OpenDatabase("BIBLIO.MDB")在成功地初始化Database對象變量后,就可以在該模塊的代碼中的任何位置自由地訪問它了。FormLoad事件:用Nodes集合的Add方法創(chuàng)建頂層的Node對象至此,Database對象變量已經(jīng)被初始化為Biblio數(shù)據(jù)庫,現(xiàn)在可以創(chuàng)建樹中的第一個節(jié)點,并將打開的數(shù)據(jù)庫的名稱賦予它。首先必須用Node集合的Add方法創(chuàng)建第一個Node對象。還要使用Set語句將其賦給mNode對象變量,如下所示:SetmNo
6、de=tvwDB.Nodes.Add()'創(chuàng)建第一個節(jié)點。mNode.Text=mDbBiblio.Name注意,在上面的代碼中,在創(chuàng)建Node的同時用Set語句將其賦給了mNode對象變量。由于mNode變量現(xiàn)在包含了新創(chuàng)建的Node對象,可以對該Node對象的屬性進行賦值。在上述情況下,Database的名稱(即Database對象的Name屬性)已經(jīng)被賦給了新節(jié)點的Text屬性。CommandButtonClick事件:創(chuàng)建兩個Recordset變量,并將它們分別設置為Publishers和Titles表本應用實例假定存在名為“cmdLoad”的按鈕,并且當用戶單擊它時,置入
7、Biblio數(shù)據(jù)庫中的兩個表到TreeView控件中。為此,必須首先在該按鈕的Click事件中聲明兩個DAO對象變量。第一個變量rsPublishers用來包含Publishers表。第二個變量rsTitles用來包含Titles表。下面的代碼聲明了這兩個變量,并用OpenRecordSet方法將表賦給變量:DimrsPublishersAsRecordsetDimrsTitlesAsRecordsetSetrsPublishers=mDbBiblio._OpenRe