這段代碼也是從論壇上學習來的
直接上代碼,代碼有的地方多餘,請忽略。程式可以正常走完,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