vs2005(vb.net) treeview绑定数据库中的表

rmini 2011-08-16 05:36:54


以上图片的左边是在VB6窗体上加载的效果,并且可以动态对表进行增加、修改、删除等操作,右边是数据库中的表 tb_cail,我用VB6已经实现了,但是我现在刚刚转入学习VB.NET,折腾了两天,还是不知道如何实现加载,刚接触VB.NET,希望尽量详细点

注意treeview1的级数不固定
问题1:用VB.NET如何把这个表加载到窗体上的treeview1中?
问题2:在窗体上单击treeview1的任意节点,如何取得数据库中表tb_cail中的各个字段的值?用textbox1,textbox2...textbox6显示各个字段的值
...全文
656 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
rmini 2011-08-19
  • 打赏
  • 举报
回复
谢谢linjimu ,基础太差,treeview这个东西折腾了我好多天了
rmini 2011-08-19
  • 打赏
  • 举报
回复
假设表字段如下,求一个完整的代码来学习
表名为tb_aaa_deptwk
四个字段为 ID ParentID DeptName memo (分别表示节点编号,父节点,节点名称,备注)
rmini 2011-08-19
  • 打赏
  • 举报
回复
还是没搞定
我只是可以加一级节点,以下是加载一级节点,但是2,3,....就不知道怎么办了?也许是表设计不合理

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim UserSqlstr As String = "SELECT * FROM tb_aaa_deptwk where bianmjc=1"
objDataAdpter = New SqlDataAdapter(UserSqlstr, objSqlConnection)
Dim myTreeNodeAs TreeNode
Dim ds As DataSet = New DataSet()
Dim myDataRow As DataRow
objDataAdpter.Fill(ds, "tb_aaa_deptwk")
For Each myDataRow In ds.Tables("tb_aaa_deptwk").Rows
myTreeNodeAs = New TreeNode()
myTreeNodeAs.Text = rowAuthor("cailmc")
myTreeNodeAs.Tag = rowAuthor("jicbh")
TreeView1.Nodes.Add(myTreeNodeAs)
Next
End Sub
沐NeMo 2011-08-19
  • 打赏
  • 举报
回复
Dim classSystem As New Bll.Class()
Dim dt As DataTable = classSystem.GetClassList("").Tables(0)
是后台读取数据库,数据表的类,你改为你自己的代码。获取一个数据表就是。

ddlClass是一个listview控件,你可以换treeview。

StringBuilder 是什么,都来问我。我晕。
SqlHelper 是自定义一类。执行数据库相关操作。
沐NeMo 2011-08-19
  • 打赏
  • 举报
回复

弄清楚了。以后遇到问题就可以解决咯。
rmini 2011-08-18
  • 打赏
  • 举报
回复
问题还是没有解决啊,刚接触vb.net,看不懂2楼朋友的代码,希望对一些地方做一下说明,比如需要引用什么的等等...
1.Dim classSystem As New Bll.Class()是什么意思?
2.ddlClass.Items.Add(New ListItem("添加根栏目", "0"))是什么用法? ddlClass是指的treeview吗?
3. Dim strSql As New StringBuilder()
Return SqlHelper.ExecuteDataset(SqlHelper.ConnString, CommandType.Text, strSql.ToString())这个两句是什么?StringBuilder, SqlHelper 是什么?
沐NeMo 2011-08-17
  • 打赏
  • 举报
回复
Protected Sub Form_Load(sender As Object, e As EventArgs)
BindDrpClass()
End Sub

'绑定顶级分类
Private Sub BindDrpClass()
Dim classSystem As New Bll.Class()
Dim dt As DataTable = classSystem.GetClassList("").Tables(0)
ddlClass.Items.Clear()
ddlClass.Items.Add(New ListItem("添加根栏目", "0"))
Dim drs As DataRow() = dt.[Select]("ParentID= " & 0)

For Each dr As DataRow In drs
Dim classid As String = dr("ClassID").ToString()
Dim classname As String = dr("ClassName").ToString()
'顶级分类显示形式
classname = "╋" & classname

ddlClass.Items.Add(New ListItem(classname, classid))
Dim sonparentid As Integer = Integer.Parse(classid)
Dim blank As String = "├"
'递归子分类方法
BindNode(sonparentid, dt, blank)
Next
ddlClass.DataBind()
End Sub

'绑定子分类
Private Sub BindNode(parentid As Integer, dt As DataTable, blank As String)
Dim drs As DataRow() = dt.[Select]("ParentID= " & parentid)

For Each dr As DataRow In drs
Dim classid As String = dr("ClassID").ToString()
Dim classname As String = dr("ClassName").ToString()

classname = blank & classname
ddlClass.Items.Add(New ListItem(classname, classid))

Dim sonparentid As Integer = Integer.Parse(classid)
Dim blank2 As String = blank & "─"

BindNode(sonparentid, dt, blank2)
Next
End Sub

Public Function GetClassList(strWhere As String) As DataSet
Dim strSql As New StringBuilder()
strSql.Append("select * from tb_Class ")
If strWhere.Trim() <> "" Then
strSql.Append(" where " & strWhere)
End If
Return SqlHelper.ExecuteDataset(SqlHelper.ConnString, CommandType.Text, strSql.ToString())
End Function
沐NeMo 2011-08-17
  • 打赏
  • 举报
回复
表很不合理。jcbh编码规律还可以。不过不好扩展。cailq 名字也不必这么复制的。
重新设计无限树状结构:
编号 名称 父编号 关键值
ID Name ParentID KeyValue
这个结构可以扩展,加其他字段。
参考:
http://blog.csdn.net/zhaoyu_1979/article/details/6103323
http://topic.csdn.net/u/20090619/16/98091f21-2a6f-4079-a1a2-e223c49b0495.html
rmini 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 linjimu 的回复:]

表很不合理。jcbh编码规律还可以。不过不好扩展。cailq 名字也不必这么复制的。
重新设计无限树状结构:
编号 名称 父编号 关键值
ID Name ParentID KeyValue
这个结构可以扩展,加其他字段。
参考:
http://blog.csdn.net/zhaoyu_1979/article/details/6103323
http……
[/Quote]

谢谢两位的热心回复!先研究两位给的回复。我就是不知道这种树形结构该如何设计表才合理

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧