J'ai besoin d'extraire des données d'un fichier .dbf et de le transformer en xml. J'ai écrit une routine qui fait très bien. Cependant, nous rencontrons maintenant de très gros fichiers .dbf - comme 2GB +. Et ce code lève une exception OutOfMemoryException sur ces fichiers..Net System.OutOfMemoryException remplissant une datatable
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
La chose est - si je lance ce même code sur mon ordinateur via Visual Studio en mode débogage contre le même 2 Go .dbf fichier pas exception est levée. Il est presque comme Visual Studio gère la mémoire différemment alors l'application fait tout seul.
Est-il possible de contourner les problèmes de mémoire? J'ai essayé d'utiliser un DataAdapter avec des résultats similaires. Ce comportement que je vois avec Visual Studio est-il attendu/prévu?