📄 frmnumstore.vb
字号:
Imports System.Data
Imports System.Data.SqlClient
Public Class FrmNumStore
Inherits System.Windows.Forms.Form
#Region " Windows 窗体设计器生成的代码 "
Public Sub New()
MyBase.New()
'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()
'在 InitializeComponent() 调用之后添加任何初始化
End Sub
'窗体重写 dispose 以清理组件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。
Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox
Friend WithEvents TreeView1 As System.Windows.Forms.TreeView
Friend WithEvents BtnSave As System.Windows.Forms.Button
Friend WithEvents OleDbConnection1 As System.Data.OleDb.OleDbConnection
Friend WithEvents OleDbDataAdapter1 As System.Data.OleDb.OleDbDataAdapter
Friend WithEvents OleDbSelectCommand1 As System.Data.OleDb.OleDbCommand
Friend WithEvents DataSet1 As System.Data.DataSet
Friend WithEvents OleDbCommand1 As System.Data.OleDb.OleDbCommand
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.GroupBox1 = New System.Windows.Forms.GroupBox
Me.TreeView1 = New System.Windows.Forms.TreeView
Me.BtnSave = New System.Windows.Forms.Button
Me.OleDbConnection1 = New System.Data.OleDb.OleDbConnection
Me.OleDbDataAdapter1 = New System.Data.OleDb.OleDbDataAdapter
Me.OleDbSelectCommand1 = New System.Data.OleDb.OleDbCommand
Me.DataSet1 = New System.Data.DataSet
Me.OleDbCommand1 = New System.Data.OleDb.OleDbCommand
Me.GroupBox1.SuspendLayout()
CType(Me.DataSet1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'GroupBox1
'
Me.GroupBox1.Controls.Add(Me.TreeView1)
Me.GroupBox1.Location = New System.Drawing.Point(64, 80)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Size = New System.Drawing.Size(480, 344)
Me.GroupBox1.TabIndex = 0
Me.GroupBox1.TabStop = False
Me.GroupBox1.Text = "库位基础设置"
'
'TreeView1
'
Me.TreeView1.ImageIndex = -1
Me.TreeView1.Location = New System.Drawing.Point(16, 24)
Me.TreeView1.Name = "TreeView1"
Me.TreeView1.SelectedImageIndex = -1
Me.TreeView1.Size = New System.Drawing.Size(448, 304)
Me.TreeView1.TabIndex = 0
'
'BtnSave
'
Me.BtnSave.Location = New System.Drawing.Point(584, 208)
Me.BtnSave.Name = "BtnSave"
Me.BtnSave.Size = New System.Drawing.Size(56, 32)
Me.BtnSave.TabIndex = 1
Me.BtnSave.Text = "save"
'
'OleDbDataAdapter1
'
Me.OleDbDataAdapter1.SelectCommand = Me.OleDbSelectCommand1
'
'OleDbSelectCommand1
'
Me.OleDbSelectCommand1.CommandText = "SELECT" & Microsoft.VisualBasic.ChrW(13) & Microsoft.VisualBasic.ChrW(10) & "FROM" & Microsoft.VisualBasic.ChrW(13) & Microsoft.VisualBasic.ChrW(10)
'
'DataSet1
'
Me.DataSet1.DataSetName = "NewDataSet"
Me.DataSet1.Locale = New System.Globalization.CultureInfo("zh-CN")
'
'FrmNumStore
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.ClientSize = New System.Drawing.Size(768, 533)
Me.Controls.Add(Me.BtnSave)
Me.Controls.Add(Me.GroupBox1)
Me.Name = "FrmNumStore"
Me.Text = "IQC目盘库位设置"
Me.GroupBox1.ResumeLayout(False)
CType(Me.DataSet1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
#End Region
'定义公用变量
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=MSDASQL.1;Persist Security Info=False;User ID=sa;Data Source=iqcstore;Initial Catalog=tempdb" '数据库连接请自行更换
mycommand.CommandText = "SELECT id,架 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
'编写节点选择事件处理程序,以实现动态加载各级节点的子节点
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
mycommand.CommandText = "select 第一级子节点编号,第一级子节点名称 from 第一级子节点 where 根节点编号 ='" & e.Node.Tag & "'"
fill_treeleaf()
End If
Case "2"
If e.Node.GetNodeCount(False) = 0 Then
mycommand.CommandText = "select 第二级子节点编号,第二级子节点名称 from 第二级子节点 where 第一级子节点编号 ='" & e.Node.Tag & "'"
fill_treeleaf()
End If
End Select
End Sub
'对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
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
End Sub
Private Sub FrmNumStore_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
Dim StrTemp As String
StrTemp = Nothing
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -