VB Migration Partner

KNOWLEDGE BASE - Database and data-binding


Previous | Index | Next 

[PRB] VB.NET doesn’t allow to close an ADO Connection while a transaction is active

In VB6 you can close an ADO Connection while a transaction is active:

        Dim cn As New ADODB.Connection
        cn.Open myConnectionString
        cn.BeginTrans
        ...
        cn.Close

In VB.NET this operation causes a COMException runtime error whose message is quite self-explanatory:

        Connection object cannot be explicitly closed while in a transaction.

You can see this error both while working directly with an ADO Connection and while opening a transaction on the Connection object exposed by an ADO Data control.

In general, closing a connection while a transaction is active is bad programming practice. If you experience this error in the converted VB.NET application we recommend that you edit the original VB6 code to explicitly rollback or commit the transaction before closing the connection. If you prefer not to edit the original VB6 code, just use an InsertStatement pragma, as in:

        Dim cn As New ADODB.Connection
        cn.Open myConnectionString
        cn.BeginTrans
        ...
        '## InsertStatement cn.RollbackTrans
        cn.Close
Previous | Index | Next 




Follow Francesco Balena on VB6 migration’s group on

LinkedIn





Read Microsoft Corp’s official case study of a VB6 conversion using VB Migration Partner.




Code Architects and its partners offers remote and onsite migration services.

More details




Subscribe to our free newsletter for useful VB6 migration tips and techniques.

newsletter



To learn more about your VB6 applications, run VB6 Analyzer on your source code and send us the generated text file. You will receive a detailed report about your VB6 applications and how VB Migration Partner can help you to quickly and effectively migrate it to .NET.

Get free advice



A fully-working, time-limited Trial Edition of VB Migration Partner allows you to test it against your actual code

Get the Trial




The price of VB Migration Partner depends on the size of the VB6 application, the type of license, and other factors

Request a quote




Migrating a VB6 application in 10 easy steps

Comparing VB Migration Partner with Upgrade Wizard

Migration tools: Feature Comparison Table

All whitepapers