明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2062|回复: 2

vb.net自定义面板里加载ACCESS的问题

[复制链接]
发表于 2012-5-16 13:09:25 | 显示全部楼层 |阅读模式
自己做了一个停靠CAD的面板,在面板里有一个TreeView控件,在CAD里加载面板后,再执行命令"OpenData "打开ACCESS添加到TreeView,TreeView为空,中间我添加了一个MsgBox 倒是能显示读取的数据,但不能添加到TreeView里,也没错误提示,如果在面板里加一个Button,用 OpenData()下同样的代码,单击Button一切正常,TreeView能显示内容,而 OpenData()调用Button单击事件也不行,不知道是什么原因,大家帮我看看问题出在哪里


Public Class MFine

    <CommandMethod("OpenData")> _
    Public Sub OpenData()
        Dim PathString As String
        Me.Open1.Title = "打开Access 文件"
        Me.Open1.Filter = "Access 2003 文件(*.mdb)|*.mdb"
        Me.Open1.FileName = ""
        If Me.Open1.ShowDialog() = DialogResult.OK Then
            PathString = Me.Open1.FileName

            Dim MyConnection As New OleDbConnection()
            Dim SysConnection As New OleDbConnection()

            ' 打开数据库连接
            Dim MyConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data source=" + PathString

            ' 使用OleDb .NET数据提供程序创建连接
            MyConnection.ConnectionString = MyConnectionString
            MyConnection.Open()

            Dim comMyCommand As New OleDbCommand("Select distinct 规格  FROM cgb", MyConnection)
            Dim reaMyDataReader As OleDbDataReader = comMyCommand.ExecuteReader()
            Dim hostName As String = System.Reflection.Assembly.GetExecutingAssembly().Location
            hostName = hostName.Substring(0, hostName.LastIndexOf("\"))
            Dim SysConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data source=" & hostName & "\System\Gtype.mdb"
            SysConnection.ConnectionString = SysConnString
            SysConnection.Open()

            MsgBox(SysConnString)


            Me.TreeView1.Nodes.Clear()
            Me.TreeView1.Nodes.Add(PathString)


            While reaMyDataReader.Read()

                Dim SysCommand As New OleDbCommand("Select * From gl where 类型 ='" & reaMyDataReader(" 规格 ") & "'", SysConnection)
                Dim SysReader As OleDbDataReader = SysCommand.ExecuteReader()
                SysReader.Read()

                If SysReader.HasRows = True Then


                    Dim tree_root As New TreeNode()

                    tree_root.Text = reaMyDataReader("规格") & " " & SysReader("类型")
                    MsgBox(tree_root.Text) '临时添加对话框测试是否读取到数据
                    Me.TreeView1.Nodes.Item(0).Nodes.Add(tree_root.Text)
                End If
     End While
            Me.TreeView1.ExpandAll()

            SysConnection.Close()
            MyConnection.Close()

        End If
    End Sub
End Class

发表于 2012-5-17 15:43:20 | 显示全部楼层
试试用
ResumeLayout()
Refresh()
Update()
更新TreeView
 楼主| 发表于 2012-5-22 15:16:12 | 显示全部楼层
还是不行,不知道为什么同样的代码放到按钮里就可以
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 17:58 , Processed in 0.154640 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表