如何在迁移到VB.NET的代码中配置ADODB.Command对象

时间:2014-03-13 15:53:17

标签: .net vb.net vb6 adodb

我们将一些过时的代码从VB6迁移到VB.net,之前的代码使用ADODB连接到oracle。下面是代码的样子

Dim cmd As New ADODB.Command

' stored procedures execution here

cmd = Nothing    // I want to dispose this cmd Object 

Nothing在VB6中工作,但它在.NET中造成很多麻烦,数据库上有开放的游标。我知道我们应该使用最新的库并摆脱ADODB但是现在我有办法处理这个对象。我试过了cmd.Dispose(),但这没效果。

2 个答案:

答案 0 :(得分:1)

使用Marshal.ReleaseComObject整理COM对象。 ADODDB是通过COM Interop使用的COM库。

通过COM-Interop使用的COM对象具有Dispose方法,但仍可能需要手动整理。与“正确的”.Net对象形成对比可能有Dispose方法,或实现IDisposable

答案 1 :(得分:0)

在VB.net(或C#)中,应该处理的类应该包含Dispose()方法。不需要处理的类不应包含Dispose()方法。

在你的情况下,Command实例可能不需要处理,但我会下注Connection实例(你没有包含在你的示例代码中,但我很漂亮确定你有)。