第一级节点显示年,第二级节点显示月,第三级显示日不久得了select * from tableName order by year,month,day
Private Sub Form_Load() j = 0 TreeView1.ImageList = ImageList1 Dim cnn As New ADODB.Connection Dim rs As New ADODB.Recordset cnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb;Persist Security Info=False" '连接数据库字符串 cnn.Open Set rs = cnn.Execute("select * from 学生信息") For i = 0 To rs.Fields.Count - 1 Set a = TreeView1.Nodes.Add(, , Chr(i), rs.Fields(i).Name, 1, 2) rs.MoveFirst Do While Not rs.EOF j = j + 1 Set b = TreeView1.Nodes.Add(Chr(i), tvwChild, Chr(j) & Chr(i), rs(i), 1, 2) rs.MoveNext Loop Next i cnn.Close End Sub
常用的办法:只有当用户点击某个节点时才加载其子节点,并不是一次性加载。 例如,当用户展开path为 2003年12月的节点时,你就搜索数据库: select * from tableName where year='2003' and month='12' order by day 然后,逐个加载到该节点下
j = 0
TreeView1.ImageList = ImageList1
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb;Persist Security Info=False" '连接数据库字符串
cnn.Open
Set rs = cnn.Execute("select * from 学生信息")
For i = 0 To rs.Fields.Count - 1
Set a = TreeView1.Nodes.Add(, , Chr(i), rs.Fields(i).Name, 1, 2)
rs.MoveFirst
Do While Not rs.EOF
j = j + 1
Set b = TreeView1.Nodes.Add(Chr(i), tvwChild, Chr(j) & Chr(i), rs(i), 1, 2)
rs.MoveNext
Loop
Next i
cnn.Close
End Sub
例如,当用户展开path为 2003年12月的节点时,你就搜索数据库:
select * from tableName where year='2003' and month='12' order by day
然后,逐个加载到该节点下
其实,现在机器都很快了,日记加载不会慢很多的
我在做过的项目中,一次加载几万条商品信息,也只有1、2秒而已
数据库中的数据是按索引排序的就好