首先 VS2005 貌似是VB.NET的了 然后 你只要treeview的点击事件里用SELECT CASE CASE 1 '比如查找数据库 case 2 。 。 。
我给你一个实用的例子!你好好看,就会懂的!比如现有一个ACCESS数据库的一张表字段如下: 员工编号,员工姓名,上司编号 0 A 1 B 0 2 C 1现在要用TREEVIEW控件将这张表表示出来! 代码如下: Option ExplicitDim con As ADODB.Connection Dim rs As ADODB.RecordsetPrivate Sub Form_Load() Set con = New ADODB.Connection con.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Emp.mdb" con.CursorLocation = adUseClient con.ConnectionTimeout = 5 con.Open
Set rs = New ADODB.Recordset rs.Open "Select * From Employees", con, adOpenForwardOnly, adLockOptimistic, -1
Dim i As Integer, nod As Node For i = 1 To rs.RecordCount If rs.Fields("LeaderID").Value = 0 Then Me.TreeView1.Nodes.Add , , "K_" & rs.Fields("nID").Value, rs.Fields("EmpName").Value, 1 Else Me.TreeView1.Nodes.Add "K_" & rs.Fields("LeaderID").Value, tvwChild, "K_" & rs.Fields("nID").Value, rs.Fields("EmpName").Value, 1 End If rs.MoveNext Next i
rs.Close Set rs = Nothing
End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) con.Close Set con = Nothing End Sub
就是读数据库+把读到的内容写到Me.TreeView1.Nodes.Add 后面合适的位置
SQL数据库需要把con.ConnectionString换掉
谢谢各位我自己搞定了Private Sub treeviewclass() ' AddTree递归函数每次都要用到数据集中的一个表,所以定义成private ' '定义数据库连接 Dim CN As New OleDbConnection() Try '初始化连接字符串 CN.ConnectionString = pubcls.conn CN.Open() '添加命令,从数据库中得到数据 Dim sqlCmd As New OleDbCommand sqlCmd.Connection = CN sqlCmd.CommandText = "select * from t_incomeclass" sqlCmd.CommandType = CommandType.Text Dim adp As OleDbDataAdapter = New OleDbDataAdapter(sqlCmd) adp.Fill(ds) Catch ex As Exception MsgBox(ex.Message) Finally '关闭连接 CN.Close() End Try '调用递归函数,完成树形结构的生成 AddTree(0, Nothing) End Sub '̀递归添加树的节点 Private Sub AddTree(ByVal ParentID As Integer, ByVal pNode As TreeNode) Dim Node As TreeNode Dim dvTree As New DataView() dvTree = New DataView(ds.Tables(0)) '过滤ParentID,得到当前的所有子节点 dvTree.RowFilter = "PARENTID = " + ParentID.ToString Dim Row As DataRowView For Each Row In dvTree If pNode Is Nothing Then '判断是否根节点 '̀添加根节点 Node = TreeView1.Nodes.Add(Row("context").ToString()) '̀再次递归 AddTree(Int32.Parse(Row("ID").ToString()), Node) Else '添加当前节点的子节点 Node = pNode.Nodes.Add(Row("context").ToString()) '̀再次递归 AddTree(Int32.Parse(Row("ID").ToString()), Node) End If Node.EnsureVisible() Next
然后 你只要treeview的点击事件里用SELECT CASE
CASE 1
'比如查找数据库
case 2
。
。
。
员工编号,员工姓名,上司编号
0 A
1 B 0
2 C 1现在要用TREEVIEW控件将这张表表示出来!
代码如下:
Option ExplicitDim con As ADODB.Connection
Dim rs As ADODB.RecordsetPrivate Sub Form_Load()
Set con = New ADODB.Connection con.ConnectionString=
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Emp.mdb"
con.CursorLocation = adUseClient
con.ConnectionTimeout = 5
con.Open
Set rs = New ADODB.Recordset
rs.Open "Select * From Employees", con, adOpenForwardOnly, adLockOptimistic, -1
Dim i As Integer, nod As Node
For i = 1 To rs.RecordCount
If rs.Fields("LeaderID").Value = 0 Then
Me.TreeView1.Nodes.Add , , "K_" & rs.Fields("nID").Value, rs.Fields("EmpName").Value, 1
Else
Me.TreeView1.Nodes.Add "K_" & rs.Fields("LeaderID").Value, tvwChild, "K_" & rs.Fields("nID").Value, rs.Fields("EmpName").Value, 1
End If
rs.MoveNext
Next i
rs.Close
Set rs = Nothing
End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
con.Close
Set con = Nothing
End Sub
谢谢各位我自己搞定了Private Sub treeviewclass()
' AddTree递归函数每次都要用到数据集中的一个表,所以定义成private ' '定义数据库连接
Dim CN As New OleDbConnection()
Try
'初始化连接字符串
CN.ConnectionString = pubcls.conn
CN.Open()
'添加命令,从数据库中得到数据
Dim sqlCmd As New OleDbCommand
sqlCmd.Connection = CN
sqlCmd.CommandText = "select * from t_incomeclass"
sqlCmd.CommandType = CommandType.Text
Dim adp As OleDbDataAdapter = New OleDbDataAdapter(sqlCmd)
adp.Fill(ds)
Catch ex As Exception
MsgBox(ex.Message)
Finally
'关闭连接
CN.Close()
End Try
'调用递归函数,完成树形结构的生成
AddTree(0, Nothing)
End Sub '̀递归添加树的节点
Private Sub AddTree(ByVal ParentID As Integer, ByVal pNode As TreeNode)
Dim Node As TreeNode
Dim dvTree As New DataView()
dvTree = New DataView(ds.Tables(0))
'过滤ParentID,得到当前的所有子节点
dvTree.RowFilter = "PARENTID = " + ParentID.ToString Dim Row As DataRowView
For Each Row In dvTree
If pNode Is Nothing Then '判断是否根节点
'̀添加根节点
Node = TreeView1.Nodes.Add(Row("context").ToString())
'̀再次递归
AddTree(Int32.Parse(Row("ID").ToString()), Node)
Else
'添加当前节点的子节点
Node = pNode.Nodes.Add(Row("context").ToString())
'̀再次递归
AddTree(Int32.Parse(Row("ID").ToString()), Node)
End If
Node.EnsureVisible()
Next