vb.net access数据库treeview 数据库绑定

软件开发的家园,编程爱好者的天地.
&&|&&&&|&&
VB.Net开发频道
为VB.Net程序员和VB.Net编程爱好者提供VB.Net技术资料_VB.Net编程技巧_VB.Net教程等VB.Net信息.
标题发布时间vb.net DataGridView中DataGridViewComboBoxColumn动态绑定数据-...
DataGridView绑定数据后怎么再将某列设成DataGridViewComboBoxColumn
DataGridView绑定数据后如何再将某列设成DataGridViewComboBoxColumn数据已经绑定到DataGridView了,但是要把某列设成combobox可选择的样式,要怎样实现呢?解决方案
private void dataGridView1_CellEnter(object
DataGridView绑定数据-
DataGridView绑定数据在线等手动增加DataGridView的列以后 再绑定数据但是数据不显示,经过跟踪后发现,sql语句执行结果是有数据的,这个是为什么呢?解决方案
设置该列的datapropertyname属性为对应的字段名
探讨设置该列的datapropertyname属性为对应的字段名
c# 绑定数据到 DataGridViewComboBoxColumn 没效果
c# 绑定数据到 DataGridViewComboBoxColumn 没有效果BindingSource&bs&=&new&BindingSource();
&&&&&&&&nbsp
datagridview 绑定数据有关问题
datagridview 绑定数据问题?datagridview &
& 以XML文件为数据源,XML文件中有ID,NAME,ADDRESS等字段,现在只想绑定NAME和ADDRESS,别的字段不绑定,且列标题要变为姓名和地址,怎么绑定?解决方案选择字段和写表头.
解决方案用
DataGridView绑定数据解决思路
DataGridView绑定数据绑定数据到DataGridView中,有一行数据,但全是空白值,怎么解决?解决方案
你设置每一列的DataPropertyName属性了吗,这个就是绑定的字段名
解决方案dataGridView1.AllowUserToAddRows =
解决方案应该是没有将
datalist的动态绑定数据解决思路
datalist的动态绑定数据怎么根据每一记录来确定datalist的摸板列显示的个数和内容,比如说,有的有图片,有的没有图片,怎么来弄呢.解决方案有图片的显示图片,没图片的就不显示啊...
可以在ItemDataBound事件中做这个判断
解决方案protected void
.NET新技术
treeview动态绑定数据,该怎么处理
treeview动态绑定数据我现在要做一个treeview动态绑定数据库表中的内容,表结构如下:s_kmbm(科目编码) i_wdid(网点) i_grade(科目级别) s_bm1(编码1) s_bm2(编码2) s_bm3 s_bm4 s_bm5101
Teechart图如何动态绑定数据
Teechart图怎么动态绑定数据?就是利用编码的方式可以改变他的数据源,我使用VS2005 teechartv6
求助。。。解决方案
自己看代码,很全的http://mxpopstar./blog/static//http
RDLC报表动态绑定数据解决方法
RDLC报表动态绑定数据public static DataSet GetValue() &
Dictionary&string, DailyKpiCalculationPercentage& dailyKpi = new
替RDLC报表动态绑定数据
为RDLC报表动态绑定数据
string conStr = "Data Source=.;Initial Catalog=BIntegrated Security=True";
SqlConnection con = new SqlConnection(conStr);
怎么给动态生成的 DropDownList 绑定数据
如何给动态生成的 DropDownList 绑定数据如何给动态生成的&DropDownList&绑定数据,如何给"txtBuyer"&+&i绑定数据?
code=csharp]&&&&&&&&nbsp
怎么邦定数据到DataGridView和ListView
如何邦定数据到DataGridView和ListView分别怎么写?谢谢大虾了解决方案SqlDataReader reader = command.ExecuteReader();
GridView1.DataSource =
GridView1.DataBind
dataGridView绑定数据后,该如何处理
dataGridView绑定数据后dataGridView绑定数据后。& 我需要对dataGridView显示的内容进行编辑,例如内容的修改,增加行,删除行。但是绑定后不能直接进行ADDROW请问大家有什么好的方法,请指教解决方案应该是可以的啊,无论是新增、修改还是删除,你都只要把表里的数据改后再绑定出来
datagridView及comboBox绑定数据刷新有关问题
datagridView及comboBox绑定数据刷新问题项目中有一名为UserEdit的winform,包含一个数据控件datagridView1,一个comboBox1,一个按钮button_Fresh当UserEdit载入的时候,绑定datagridView1和comboBox1的数据源,代码如下private
DataGridView绑定数据,导出时顺序异常
DataGridView绑定数据,导出时顺序错误我将数据查询出来,绑定到DataGridView中,界面显示的是1、2、3、4、5的顺序,可是导出的时候顺序就乱了(变成了2、1、5、4、3);绑定代码
List&ScsjModel& listModel = new List&lt
文章评论 以下网友留言只代表其个人观点,不代表本网站的观点和立场。有没有VB.Net中 TreeView绑定数据库里中国省市的源代码??
[问题点数:40分,结帖人setoy]
有没有VB.Net中 TreeView绑定数据库里中国省市的源代码??
[问题点数:40分,结帖人setoy]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
2010年 总版技术专家分年内排行榜第一2009年 总版技术专家分年内排行榜第一
2011年 总版技术专家分年内排行榜第二
本帖子已过去太久远了,不再提供回复功能。热门搜索:
您的位置: -&
-& VB.NET教程
软件教程分类查找
第一部分:VB.NET新手入门
第二部分:VB.NET使用技巧
第三部分:VB.NET使用教程
评论问答区
联系QQ:友情链接
推荐教程最近更新
相关精品软件课程
人气:371117
C++是一种静态数据类型检查的,支持多重编...
人气:130195
Java,是由Sun Microsystems公司于1995年5...
人气:114216
C语言是一种面向过程的计算机程序设计语言...
人气:71845
Oracle Database,又名Oracle RDBMS,或简...
人气:68368
Visual Basic是一种由微软公司开发的包含协...
人气:46582
Visual C++微软公司的C++开发工具,具有集...
资源统计:无插件软件:92800个 无病毒软件:93094个 昨日已处理111个带插件、病毒的软件
本站总软件:93094个 软件总下载次数:22.278亿次
软件教程文章:78296篇 总浏览次数:2.533亿次2034人阅读
Treeview是一个重要的控件,无论是在VB.NET,C#还是Delphi、VC++等各种语言中,都充当了导航器的作用。在实际工作中,很多情况下需要将Treeview与数据库进行连接,以填充其节点。然而,往往由于数据库数据众多,一次性灌入所有的根节点与子节点,会耗用大量的起始等待时间。解决的方案,应该是动态加载节点,起始的时候,只加载根节点,在点击某个根节点时,才加载其子节点,再点击某个子节点时,才加载子节点的子节点,以此类推,这样的处理方法可以达到提高工作效率,节省访问时间的妙用。
本文仅以VB.NET为例,说明此方法的使用。其它的编程语言,可以进行仿效。
首先应该有个数据库,用以保存数据结构与数据。本文需要的数据库为一个Project.mdb。其结构为(为清楚起见,以汉字字段为例,实际应用时,请自行更改):
表名:根节点
根节点编号
根节点名称
表名:第一级子节点
根节点编号
第一级子节点编号
Y&联合主键
第一级子节点名称
表名:第二级子节点
第一级子节点编号
第二级子节点编号
Y&联合主键
第二级子节点名称
三个表的关系已经很清楚了,在此不再罗列。表内填充的数据为:
根节点编号为1、2、3这样类推,其名称也就为根节点1、根节点2、根节点3
第一级子节点编号规则为:根节点1之下的子节点编号为11、12、13等以此类推,根节点2之下的子节点编号为21、22&&子节点名称为:子节点1、子节点2&&
第二级子节点编号规则为:第一级子节点ij之下的第二级子节点的编号为ij1、ij2&&,其名称为统一的:孙节点1、孙节点2&&
现在让我们简单分析一下treeview的结构(笔者准备在另文专门剖析一下Treeview的结构,以方便有兴趣的网友进行高级应用)
Treeview是由节点TreeNode组成的,第一级的称之为根节点TreeRoot,在根节点之下一级的称之为某个根节点的子节点TreeLeaf,某个子节点之下一级的子节点就称为该子节点的子节点。第个节点有两个标识方式,一个是它的Text,即显示出来的内容;另一个是它的Tag属性,一般用唯一标识码对其进行标识,以用于在使用时对节点的识别。在本文中,也主要用Text属性来显示节点的名称字段,用Tag属性来显示节点的编号属性。(节点编号被设为主键,也就是唯一的标识了)
1.加载根节点
好了,我们该开始在VB.NET中进行演练了!第一步,当然是看看怎么在窗体起始的时候加载根节点:
&& '定义公用变量
&&& Dim myconnection As New OleDb.OleDbConnection()
&&& Dim MyAdapater As New OleDb.OleDbDataAdapter()
&&& Dim mycommand As New OleDb.OleDbCommand()
&&& Dim ds As New DataSet()
&&& Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
&&&&&&& '载入根节点表至treeview中,作为第一级
&&&&&&& myconnection.ConnectionString = &Provider=Microsoft.Jet.OLEDB.4.0;Data Source=& & Application.StartupPath & &/project.mdb&&'数据库连接请自行更换
&&&&&&& mandText = &SELECT 根节点编号,根节点名称 FROM 根节点&
&&&&&&& mycommand.Connection = myconnection
&&&&&&& Try
&&&&&&&&&&& myconnection.Close()
&&&&&&&&&&& myconnection.Open()
&&&&&&&&&&& Dim mysqlreader As OleDb.OleDbDataReader = mycommand.ExecuteReader
&&&&&&&&&&& TreeView1.Nodes.Clear()
&&&&&&&&&&& While mysqlreader.Read()
&&&&&&&&& &&&&&&Dim tree_root As New TreeNode()
&&&&&&&&&&&&&&& tree_root.Tag = mysqlreader.GetString(0) '把编号放入tag中
&&&&&&&&&&&&&&& tree_root.Text = mysqlreader.GetString(1) '树上显示的是根节点名称
&&&&&&&&&&&&&&& '请根据你数据库字段的类型来决定是否用getstring或其它类型
&&&&&&&&&&&&&&& TreeView1.Nodes.Add(tree_root)
&&&&&&&&&&& End While
&&&&&&& Catch ex As Exception
&&&&&&&&&&& MessageBox.Show(ex.ToString, &数据表根节点载入错误&, vbOKOnly)
&&&&&&& Finally
&&&&&&&&&&& myconnection.Close()
&&&&&&& End Try
&&&&&&& TreeView1.ExpandAll()
&&&&&&& TreeView1.Select()
&&& End Sub
Note:TextTag
2.点击时加入子节点
对TreeView的点击,对于TreeView控件本身,并没有为哪一个级别的Node编写点击(选择)事件处理程序,而是把所有节点的点击事件都写入了一个AfterSelect事件中。因此,在编写点击加入子节点的程序之前,我们还必须编写一个查找点击的节点是哪一级节点的方法。
Public Function NodeLevel(ByVal n As TreeNode) As Byte
&&&&&&& '* 找出树中当前节点的级数
&&&&&&& Dim i As Byte = 1
&&&&&&& Dim m As String
&&&&&&& Do Until n.Parent Is Nothing
&&&&&&&&&&& n = n.Parent
&&&&&&&&&&& i += 1
&&&&&&& Loop
&&&&&&& Return i
End Function
通过这个函数,就可以很方便地得到节点的级别。现在我们可以放心地编写节点选择事件处理程序,以实现动态加载各级节点的子节点。
Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
&&&&&&& Select Case NodeLevel(e.Node).ToString
&&&&&&&&&&& Case &1&
&&&&&&&&&&&&&&& If e.Node.GetNodeCount(False) = 0 Then
&&&&&&&&&&&&&&&&&&& mandText = &select 第一级子节点编号,第一级子节点名称 from 第一级子节点 where 根节点编号 ='& & e.Node.Tag & &'&
&&&&&&&&&&&&&&&&&&& fill_treeleaf()
&&&&&&&&&&&&&&& End If
&&&&&&&&&&& Case &2&
&&&&&&&&&&&&&&& If e.Node.GetNodeCount(False) = 0 Then
&&&&&&&&&&&&&&&&&&& mandText = &select 第二级子节点编号,第二级子节点名称 from 第二级子节点 where 第一级子节点编号 ='& & e.Node.Tag & &'&
&&&&&&&&&&&&&&&&&&& fill_treeleaf()
&&&&&&&&&&&&&&& End If
&&&&&&& End Select
Public Sub fill_treeleaf()
&&&&&&& mycommand.Connection = myconnection
&&&&&&& Try
&&&&&&&&&&& myconnection.Open()
&&&&&&&&&&& Dim mysqlreader As OleDb.OleDbDataReader = mycommand.ExecuteReader
&&&&&&&&&&& While mysqlreader.Read()
&&&&&&&&&&&&&&& Dim tree_leaf As New TreeNode()
&&&&&&&&&&&&&&& tree_leaf.Tag = mysqlreader.GetString(0)
&&&&&&&&&&&&&&& tree_leaf.Text = mysqlreader.GetString(1)
&&&&&&&&&&&&&&& TreeView1.SelectedNode.Nodes.Add(tree_leaf)
&&&&&&&&&&& End While
&&&&&&& Catch ex As Exception
&&&&&&&&&&& MsgBox(ex.Message)
&&&&&&& Finally
&&&&&&&&&&& myconnection.Close()
&&&&&&& End Try
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:108320次
积分:1635
积分:1635
排名:第10261名
原创:43篇
转载:57篇
评论:21条
(8)(1)(3)(8)(1)(4)(4)(2)(3)(42)(25)

我要回帖

更多关于 vb.net 数据库 的文章

 

随机推荐