请高手帮忙看一下代码!
我是想做一个目录树,第一个查询是父节点,用第二个查询的数值在父节点下建子节点。
第一个查询有数据。第二个查询,出不来数据是什么原因?
Imports System.Data.OleDbPublic Class Form1 Dim data1 As New dataDataSet 'dataDataSet通过数据添加的access2003数据库 Dim reader As DataTableReader Dim datarow As DataRow Dim con As New OleDb.OleDbConnection Dim i, j As Integer Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim sqlstr As String = "select 所在科室 from jbxx group by 所在科室 having count(*)>1" Dim datatab As DataTableReader datatab = conn(sqlstr) Dim nod(6) As TreeNode Dim i As Integer i = 0 While datatab.Read() i = 1 + i nod(i) = New TreeNode nod(i) = TreeView1.Nodes.Add(datatab.GetString(0).ToString) End While datatab.Close() 'con.Close() '第二个查询 sqlstr = "select 所在科室,姓名 from jbxx" datatab = conn(sqlstr) TreeView1.Nodes.Add(nod(i).Text) While datatab.Read() ''这里的值为什么为假? datatab.GetString(0) While i = 0 'I已经为6了。 If nod(i).Text = datatab.GetString(0) Then nod(i).Nodes.Add(datatab.GetString(1)) '创建第一个查询出来的子节点。 End If i = i - 1 End While End While con.Close() End Sub Private Function conn(ByVal sqlstr As String) con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=D:\temp\aa\data.mdb" Dim oada As New OleDb.OleDbDataAdapter(sqlstr, con) con.Open() Dim ds As New DataSet oada.Fill(ds) Return ds.Tables(0).CreateDataReader End FunctionEnd Class
While i = 0 'I已经为6了。 If nod(i).Text = datatab.GetString(0) Then nod(i).Nodes.Add(datatab.GetString(1)) '创建第一个查询出来的子节点。 End If i = i - 1 End While
[解决办法]
http://user.qzone.qq.com/631582825/blog/1320153235
这个是我解决问题后的正确源代码。
[解决办法]
http://blog.csdn.net/w200221626/article/details/6699619
看看这个也许会有帮助