16,554
社区成员
发帖
与我相关
我的任务
分享
Private Sub TreeView1_NodeMouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseDoubleClick
For i As Integer = 0 To e.Node.Nodes.Count - 1
Me.ListView1.Items.Add(e.Node.Nodes(i).Text.Trim)
Next
End Sub
'获得的datatable
Dim dtTable As DataTable = cls.GetDataTable(strSQL)
Dim i As Integer
'每次查询清空listview菜单
Me.lsvProjects.Items.Clear()
Try
Dim lstItem As ListViewItem
'for循环加载每行数据
For i = 0 To dtTable.Rows.Count - 1
lstItem = New ListViewItem
lstItem.Tag = dtTable.Rows(i).Item("ProjectID")
lstItem.Text = dtTable.Rows(i).Item("ProjectID")
lstItem.SubItems.Add(dtTable.Rows(i).Item("ProjectName"))
lstItem.SubItems.Add(dtTable.Rows(i).Item("StartDate"))
lstItem.SubItems.Add(dtTable.Rows(i).Item("EndDate"))
lstItem.SubItems.Add(dtTable.Rows(i).Item("UserID"))
lstItem.SubItems.Add(dtTable.Rows(i).Item("UserTel"))
lstItem.SubItems.Add(dtTable.Rows(i).Item("UserSex"))
lstItem.SubItems.Add(dtTable.Rows(i).Item("IsPM"))
'加载行
Me.lsvProjects.Items.Add(lstItem)
Next
Public Function GetDataSet(ByVal strSQL As String) As DataSet
Dim ds As DataSet = New DataSet '聲明數據表 Dim ds As New DataSet
Try
'初始化適配器
Dim da As SqlDataAdapter
'打開數據庫鏈接
If g_CN Is Nothing Then
GetConnection()
End If
ds.Clear()
'將數據庫和適配器鏈接在一起
da = New SqlDataAdapter(strSQL, g_CN)
'將數據放到數據集中
da.Fill(ds)
Return ds
Catch ex As Exception
MessageBox.Show("GetDataSet出错!")
End Try
Return ds
End Function
''' <summary>
''' 加载主节点
''' </summary>
''' <remarks></remarks>
Private Sub LoadTreeView()
Dim strSQL As String = "select * from Departments"
Dim ds As DataSet = GetDataSet(strSQL)
Dim dt As DataTable = ds.Tables(0)
'Dim dtTable As DataTable = dtSet.Tables(0)
Dim i As Integer
'遍历所有的数据
For i = 0 To dt.Rows.Count - 1
'寻找主节点 A
If dt.Rows(i).Item("PDepID") = "A" Then
Dim tNode As New TreeNode
'给主节点赋名字
tNode.Name = dt.Rows(i).Item("DepID")
tNode.Text = dt.Rows(i).Item("DepName")
'将主节点加载到树上
Me.trvData.Nodes.Add(tNode)
'调用加载子节点方法 将所有的子节点加载到主节点下
LoadSubTree(dt, tNode)
tNode = Nothing
End If
Next
End Sub
''' <summary>
''' 加载子节点
''' </summary>
''' <param name="dtTable"></param>
''' <param name="tNode"></param>
''' <remarks></remarks>
Private Sub LoadSubTree(ByVal dtTable As DataTable, ByVal tNode As TreeNode)
Dim i As Integer
'遍历所有的数据
For i = 0 To dtTable.Rows.Count - 1
'寻找主节点
If tNode.Name = dtTable.Rows(i).Item("PDepID") Then
Dim sNode As New TreeNode
'给子节点赋名字
sNode.Name = dtTable.Rows(i).Item("DepID")
sNode.Text = dtTable.Rows(i).Item("DepName")
'将子节点加载到主节点上
tNode.Nodes.Add(sNode)
'递归调用 自己调用自己加载全部子节点
LoadSubTree(dtTable, sNode)
sNode = Nothing
End If
Next
End Sub
''' <summary>
''' 树形菜单查询
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub trvData_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles trvData.AfterSelect
'清空输入区
btnClear_Click(sender, e)
Dim tNode As New TreeNode
Dim sNode As New TreeNode
Dim strSQL As String = ""
'校驗密碼和用戶名的SQL語句
Try
strSQL = "SELECT * FROM VWEmployees WHERE DepID like '%" & trvData.SelectedNode.Name & "%' order by EmpID"
Dim ds As DataSet = GetDataSet(strSQL)
If ds.Tables.Item(0).Rows.Count = 0 Then
MessageBox.Show("资料不存在")
Else
'显示数据
Me.dgvShowData.DataSource = ds.Tables.Item(0).DefaultView
'中文标题
chineseTitle()
End If
Catch ex As Exception
MessageBox.Show("GetEmployee出错!")
End Try
End Sub