我需要从 .dbf 文件中提取数据并将其转换为 xml。我写了一个程序,它做得很好。但是现在我们遇到了非常大的 .dbf 文件——比如 2GB +。这段代码会在这些文件上引发 OutOfMemoryException。
Public Function GetData() As DataTable
Dim dt As New DataTable(Name)
Dim sqlcommand As String= "Select * From MyTable"
Dim cn As New OleDbConnection(myconnectionstring)
Try
cn.Open()
Dim cmd As New OleDbCommand(sqlcommand, cn)
dt.Load(cmd.ExecuteReader())
Catch ex As Exception
Throw ex
Finally
dt.Dispose()
cn.Close()
cn.Dispose()
End Try
Return dt
问题是 - 如果我在我的计算机上通过 Visual Studio 在调试模式下针对相同的 2GB .dbf 文件运行相同的代码,则不会引发异常。这几乎就像 Visual Studio 管理内存的方式与应用程序单独管理的方式不同。
有没有办法解决内存问题?我尝试使用具有类似结果的 DataAdapter。我在 Visual Studio 中看到的这种行为是预期/设计的吗?