问题描述
小弟刚开始接触vb.net,现在有个winform程序要写,100分相赠,望高手帮助……access数据库中的一张表,叫unit,表里就3列,分别是ID,Name,ParentID:1,XXX,02,YYY,03,XX1,14,XX2,15,YY1,26,YY2,27,X1,38,X2,3就是以上这个结构的access数据库,现在需要读取这张表的数据,然后分层的显示在TreeView控件中:XXX--XX1----X1----X2--XX2YYY--YY1--YY2如同以上的表现方式,小弟在网络上我找了好久,都没这个VB.NET+access的源码,希望好心人帮助一下,万分感谢!
解决方案
解决方案二:
参考,delphi代码,理解了就行http://blog.csdn.net/bdmh/article/details/5857236
解决方案三:
谢谢楼上的同志,但是由于底子比较差……还是得要看了可以运行的源码程序才会,因为数据库连接也是个问题……
解决方案四:
再把ParentID0进行区别一下。第一级节点dimnod(第一级节点数)asTreeNodedimiasIntegernod(i)=NewTreeNodenod(i)=TreeView1.Nodes.Add("xxx")第二级节点dimnod1(第二级节点数)asTreeNodedimjasIntegernod(j)=NewTreeNodenod(j)=nod(i).Nodes.Add("xx1")最后底内容nod(j).text="x1"其他的取数据的没写,只写了如何建节点的。如有疑问,可参看我的QQ空间:http://user.qzone.qq.com/631582825/infocenter#!app=2&pos=1320153235
解决方案五:
这个问题:1,建议在ACCESS表格中增加一列,表示父节点记录的ID;2,如果数据多的时候,建议不要一下子在ACCESS中读取,速度会很慢的;本人测试过4000条记录,这样的做法非常慢了;还是把最近节点显示到控件的节点(估计也就30条)存储为一个txt文件,放在access表格中,第一次加载的时候,直接加载txt文件的信息;如果节点展开/收缩,就针对父节点ID,读取/筛选一次ACCESS表;
解决方案六:
通过tree.nodes的Key来寻找父级节点即可,例如:dimn1,n2astreenodeforeachrowintb1.rowsifrow1(2)>0thenn1=tree.nodes(row1(2)).add(row1(0),row1(1))elsen1=tree.nodes.add(row1(0),row1(1))endifnext
解决方案七:
按照楼上的同志的思路,试了下,还是不行,哎
解决方案八:
看此贴:http://topic.csdn.net/u/20120329/16/0b8061d4-54f2-4620-ad95-68e6d55a4728.html
解决方案九:
vb的没有C#的可以吗?
解决方案十:
不知道你能不能看懂有些参数例如conn是其它地方已经赋值了如果要能完整运行的,那我把项目打包给你好了,留下QQ吧'得到数据库目录记录PublicFunctionGetSort(ByRefiAsInteger)AsInteger'DimmyDTAsDataTableDimOleDbConnAsNewOleDbConnection(conn)OleDbConn.Open()DimselectcommAsString="select*fromSortwhereLevelID="&i.ToStringDimaptAsOleDbDataAdapter=NewOleDbDataAdapter(selectcomm,OleDbConn)DimmyDSAsDataSet=NewDataSetapt.Fill(myDS,"Sort")dt=myDS.Tables.Item(0)OleDbConn.Close()Returndt.Rows.CountEndFunction'递归查nodesPublicSubSeachNode(ByValnodeAsTreeNode,ByValaddnodeAsTreeNode)DimmyNodeAsTreeNode=NewTreeNodeForEachmyNodeInnode.NodesIfyn=FalseThenIfCInt(myNode.Tag(0))=addnode.Tag(1)ThenmyNode.Nodes.Add(addnode)yn=TrueExitSubElseSeachNode(myNode,addnode)EndIfElseExitSubEndIfNextEndSub'''<summary>'''把Sort表中的目录显示在tv控件中'''</summary>'''<remarks></remarks>PublicSubShowtv()Dimi,jAsIntegeri=1j=GetSort(i)DoUntilj=0Ifj>0ThenDimrowAsDataRowForEachrowIndt.RowsIfrow("LevelID")=1ThenDimmyNodeAsTreeNode=NewTreeNodeDimabouts(2)AsStringmyNode.Text=row("项目标题")abouts(0)=row("SortID")abouts(1)=row("FatherID")abouts(2)=row("LevelID")myNode.Tag=aboutstv.Nodes.Add(myNode)ElseDimmyNodeAsTreeNode=NewTreeNodeDimabouts(2)AsStringmyNode.Text=row("项目标题")abouts(0)=row("SortID")abouts(1)=row("FatherID")abouts(2)=row("LevelID")myNode.Tag=aboutsDimnewNodeAsTreeNode=NewTreeNodeyn=FalseForEachnewNodeIntv.NodesIfyn=TrueThenExitForElseIfnewNode.Tag(0)=myNode.Tag(1)ThennewNode.Nodes.Add(myNode)ExitForElseSeachNode(newNode,myNode)EndIfEndIfNextEndIfNexti+=1j=GetSort(i)EndIfLoopEndSub