enocheasty 发表于 2010-9-3 22:46:00

[讨论]关于DataBase和Transaction的多个实例运行

各位,我有一段代码结构如下,当我敲了命令CC,函数将btn的Click事件挂到了Btn1_Click函数上,我单击Btn后,运行Btn_Click 函数,在初始化
JIG类时,进到Jig的New函数中,又运行到我初始化A类,然后使用A类的一个DoSomething方法的时候,CAD报错。错误类型是LockViolation,好像是被锁了?但是我看不出来这样是哪里被锁了,Transaction是不是同时只能一个在用?或者,用完就Dispose后,才能开其他的呢?
那DataBase呢?



Namespace MyApplicationName
    Class Main
      <CommandMethod("CC")> _
               Sub Commd '这个是我挂命令的函数
                      Addhandler Form.Btn1.Click , Addressof Btn1_Click'运行命令后,我把一个窗体上的按钮的单击事件挂到了另一个函数上
               end Sub Commd
               
               Sub Btn1_Click(byval ....)
                     '这里我实例化了一个Jig类
                     dim Jig as new Jig(...)
               End Sub
    End Class Main

    Class Jig
      Sub New(...)
             Dim Db as Database = Application.Doc....
             Dim Tr as Transaction = Db.Tr....
             '这里我使用了Transaction做了一些事
             Tr.comit()
             Tr.Dispose()
             '然后我实例化一个A类
            Dim a as new A
            a.DoSomething()

      End Sub New
    End Class Jig

    Class A
       Sub New()
       End Sub New

       Sub DoSomething
             Dim Db as Database = Application.Doc....
             Dim Tr as Transaction = Db.Tr....
             '这里我也要用Tr做一些事
             tr.Comit()
             tr.Dispose()
       End Sub
    End Class A
End Namespace

雪山飞狐_lzh 发表于 2010-9-3 22:52:00

<p>using doc.LockDocument()</p>
<p>&nbsp;</p>
<p>end using</p>

enocheasty 发表于 2010-9-4 09:32:00

谢谢飞狐版主,不过版主提示太简洁了。
我昨天试着把一个一个用DataBase和Trans的地方都加了Using,也没用。

我想版主的意思应该是,我在A类里面把要用Database的地方用DocumentLock代替,是吧???
我这样写的,代码如下,不知道对不对。其实我还没搞清楚DocumentLock究竟是要怎么用的

这样写了之后,不提示LockViolation了,而提示对象未实例化,我也没搞清楚,是那个对象没实例化的。。。



       Sub DoSomething            Dim Doc as Document = Application....             Dim Loc as DocumentLock =Doc.LockDocument()             Using Loc             Dim Db as Database = Application.Doc....            Dim Tr as Transaction = Doc.Tr....            '这里我也要用Tr做一些事            tr.Comit()            tr.Dispose()            End Using      End Sub

雪山飞狐_lzh 发表于 2010-9-4 10:51:00

doc =&gt; 当前文档
页: [1]
查看完整版本: [讨论]关于DataBase和Transaction的多个实例运行