有没有人遇到过 ADOX 库打开文件句柄的问题?
我在 VB6 -> VB.Net 转换中遇到了一个奇怪的问题。有一个函数使用 ADOX 来查看给定数据库中的表,并在自动增量属性设置为 true 的情况下重置所述表中任何列的种子值。
我将问题追溯到调用“col.Properties("Autoincrement").Value”。如果这行代码被注释掉,那么当我在函数末尾关闭 ADO 和 ADOX 连接时,文件句柄会正确终止。如果我留下那条线,尽管关闭调用并强制垃圾收集,句柄仍保持打开状态。
这是我关闭对象的方式:
System.Runtime.InteropServices.Marshal.ReleaseComObject(adoConn)
Dim connection As ADODB.Connection = cat.ActiveConnection
If Not connection Is Nothing Then
connection.Close()
End If
cat.ActiveConnection = Nothing
cat = Nothing
adoConn 是 ADO 连接,而 cat 是 ADOX.Catalog 对象。col(来自之前的)是与目录对象一起使用的 ADOX.Column 对象。
我最初尝试将此算法转换为使用 ADO.Net,并使用我接近的 DataSet 对象,但无法弄清楚如何确定表列是否设置为自动增量。顺便说一句,这是使用 Access 2000 数据库。