我需要从一个.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的预期设计?