乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 141|回复: 9

关于在AUTOCAD中操作外部数据库的问题

[复制链接]

5

主题

16

帖子

2

银币

初来乍到

Rank: 1

铜币
36
发表于 2011-5-10 10:39:00 | 显示全部楼层 |阅读模式
我自定义个命令,命令中需要操作(读取)外部数据库中的数据。可是调试中出现错误:Application does not support Windows Forms just-in-time (JIT) debugging.(这个错误是在中输入命令后出现的)请问有遇到过的吗?
具体代码:
Public Sub nettext()
        Dim conn As OleDbConnection
        conn = New OleDbConnection("Provide.Microsoft.Jet.OLEDB.4.0;" & "Data Source=E:\database\Bdata.mdb")
        conn.Open()
        Dim mySQL As String
        Dim mytablename As String
        mytablename = "桥梁"
        mySQL = "select * from " & mytablename
        Dim cmd As New OleDbCommand(mySQL, conn)
        Dim dr As OleDbDataReader = cmd.ExecuteReader()
        Dim da As New OleDbDataAdapter(cmd)
        Dim ds As New DataSet
        da.Fill(ds, "桥梁")
        Dim datarow As DataRow
        Dim pt As New Point3d(100, 100, 0)
        Dim height As Double = 50
        Dim oblique As Double = 0
        For Each datarow In ds.Tables("桥梁").Rows
            Dim i As Integer = 1
            Dim text As String
            text = datarow.Item("桥名")
            ModleSpace.AddText(pt, text, height, oblique)   
            pt = New Point3d(100 + i * 500, 100, 0)
            i += 1
        Next
    End Sub
代码意图是在图纸上隔500显示数据库中的桥名。
回复

使用道具 举报

5

主题

16

帖子

2

银币

初来乍到

Rank: 1

铜币
36
发表于 2011-5-10 10:49:00 | 显示全部楼层
出现错误。我点继续后。仍然没有想要的结果
回复

使用道具 举报

8

主题

138

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
170
发表于 2011-5-10 14:33:00 | 显示全部楼层
ModleSpace.AddText(pt, text, height, oblique)   
            pt = New Point3d(100 + i * 500, 100, 0)
这貌似有问题吧,你是不是用的ActiveX对象。com接口是不能使用point3d netapi里的Structure的
回复

使用道具 举报

5

主题

16

帖子

2

银币

初来乍到

Rank: 1

铜币
36
发表于 2011-5-10 21:28:00 | 显示全部楼层
回复
ModleSpace.AddText(pt, text, height, oblique)  没有问题。这个是在modlespace.vb模块中封装了DBText类的构造函数
Public Shared Function AddText(ByVal position As Point3d, ByVal textstring As String, ByVal height As Double, ByVal oblique As Double) As ObjectId
        Try
            Dim ent As New DBText()
            ent.Position = position
            ent.TextString = textstring
            ent.Height = height
            ent.Oblique = oblique
            Dim entId As ObjectId = AppendEntity(ent)
            Return entId
        Catch
            Dim nullId As ObjectId = ObjectId.Null
            Return nullId
        End Try
    End Function
回复

使用道具 举报

8

主题

138

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
170
发表于 2011-5-10 22:05:00 | 显示全部楼层

你看看你的注册表键值是不是这样的
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]
"Auto"="0"
"Debugger"="\"C:\\WINDOWS\\system32\\vsjitdebugger.exe\" -p %ld -e %ld"
"UserDebuggerHotKey"=dword:00000000
回复

使用道具 举报

5

主题

16

帖子

2

银币

初来乍到

Rank: 1

铜币
36
发表于 2011-5-10 22:24:00 | 显示全部楼层
回复
是这样的啊...
回复

使用道具 举报

8

主题

138

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
170
发表于 2011-5-10 23:03:00 | 显示全部楼层
没有哪里有winForm,不知道你哪里出问题了,这点程序也看不出端倪,自己单步吧
回复

使用道具 举报

29

主题

503

帖子

8

银币

中流砥柱

Rank: 25

铜币
619
发表于 2011-5-11 00:04:00 | 显示全部楼层

感觉连接字符有问题
New OleDbConnection("Provide.Microsoft.Jet.OLEDB.4.0;" & "Data Source=E:\database\Bdata.mdb")
改成
New OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source="  & "E:\\database\\Bdata.mdb")
试试看
回复

使用道具 举报

8

主题

138

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
170
发表于 2011-5-11 00:12:00 | 显示全部楼层
呃,应该是 Provider=
回复

使用道具 举报

5

主题

16

帖子

2

银币

初来乍到

Rank: 1

铜币
36
发表于 2011-5-11 08:39:00 | 显示全部楼层
回复
嗯。连接字符是错了。可是修改后还是不成。你有没有写过的在命令中操作数据库的简单程序,发个,我看看。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-29 12:38 , Processed in 1.114443 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表