天天看點

求教大神 vb.net TreeView.nodes.add 無法再tree上顯示出項目

這段代碼也是從論壇上學習來的

直接上代碼,代碼有的地方多餘,請忽略。程式可以正常走完,DB裡的内容也能讀出來,就是代碼結束的時候,tree上還是空的

    Public Ole_Con As OleDbConnection                     'DB檔案連結聲明

    Public Ole_Com1, Ole_Com2 As OleDbCommand              '對TreeView通路DB時,需通路根節點和子節點

    Public Ole_D_read1, Ole_D_read2 As OleDbDataReader

    Public sql As String                             'table檔案名字元串

    Public Ole_D_Adap As OleDbDataAdapter                    '定義一個資料庫借口 table檔案引用

    Public Da_Set As DataSet                             '定義一個資料集,與資料庫的表相對應

    Public CnStr As String = Para_DB_Cnstr()              'PARA DB檔案位置

    Public SysStr As String = SYS_DB_Cnstr()            '系統 DB檔案位置

    Public Function SYS_DB_Cnstr() As String

        Return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\SYS_DB1.mdb"

    End Function

Sub Sub_TV1_Main()

        Ole_Com1 = New OleDbCommand                          '對應根結點重新聲明

        Ole_Con = New OleDbConnection(SysStr)                '擷取檔案路徑

        Ole_Com1.CommandText = "select ID,Name0 from LOG1_TV1_L0" '

        Ole_Com1.Connection = Ole_Con

        Try

            Ole_Con.Close()                      '關閉資料源的連結

            Ole_Con.Open()                       '打開連結(如果有可用的連結,否則就建立一個到資料源的新連結)

            Ole_D_read1 = Ole_Com1.ExecuteReader '将commandtext發送到connection并生成一個oledbdatareader

            LOG1.TV1.Nodes.Clear() '

            While Ole_D_read1.Read()               'oledbdatareader的預設位置在第一條記錄前面。是以,必須調用read來開始通路任何資料

                Dim tree_root As New TreeNode() With {   '定義一個表示TreeView控件中的一個節點

                    .Tag = Ole_D_read1.GetString(0), '把編号方靜tag中,選擇ID

                    .Text = Ole_D_read1.GetString(1)  '樹上顯示根節點名稱,選擇Name0

                    }

                LOG1.TV1.Nodes.Add(tree_root) '這邊的tree root内可以正常讀出DB裡的内容

            End While

        Catch ex As Exception

            'MessageBox.Show(ex.ToString, "DB導入失敗", vbOKOnly)

        Finally

            Ole_Con.Close()

        End Try

        LOG1.TV1.ExpandAll() '

        LOG1.TV1.Select() '

    End Sub

繼續閱讀