2010-02-24 11 views
1

J'utilise asp.net oledb pour exporter des informations vers un fichier Excel. Je rencontre des problèmes lorsque l'information à exporter devient trop grande, dans ce cas le code que j'ai donné ci-dessous, le fichier Excel généré devient une feuille de calcul vide.Asp.net utilisant oledb pour exporter le fichier excel retourne le fichier excel vide

Si j'ai changé la boucle à 1123 pour l'insertion des lignes. Le fichier Excel généré est très bien, 1125 lignes et 4 colonnes affichées.

Un programme de test sous forme de fenêtre fonctionne également correctement, quel que soit le nombre de lignes.

Le code a été simplifié, "information ..." dans la commande d'insertion sql représente 1803 caractères.

ExcelObjConn = "Provider=Microsoft.Ace.OLEDB.12.0;" & _ 
       "Data Source=" & fileName & ";Extended Properties=Excel 12.0 XML" 
    ExcelConnection = New System.Data.OleDb.OleDbConnection(ExcelObjConn) 
    ExcelConnection.Open() 
Try 
     SqlCommand = "CREATE TABLE ABC ([row1] text, [row2] text, [row3] text, [row4] text)" 

     ExcelCommand = New OleDb.OleDbCommand(SqlCommand, ExcelConnection) 
     ExcelCommand.ExecuteNonQuery() 
     ExcelCommand.Dispose() 

     For i As Integer = 0 To 1124 
      SqlCommand = "Insert into ABC ([row1], [row2], [row3], [row4]) Values ('information...', 'information ...', 'information ...', 'information ...')" 
ExcelCommand = New OleDb.OleDbCommand(SqlCommand, ExcelConnection) 
      ExcelCommand.ExecuteNonQuery() 
      ExcelCommand.Dispose() 
     Next 
Catch ex As Exception 
Finally 
If ExcelConnection IsNot Nothing Then 
     ExcelConnection.Close() 
     ExcelConnection.Dispose() 
End If 
End Try 

Que dois-je faire? Merci.

Solution:

Bonjour, je ne pouvais pas trouver aussi bien une solution à mon problème. Ce que j'ai finalement fait était de lancer le processus en utilisant un autre service Windows séparé. Le code fonctionne parfaitement bien à partir d'un formulaire Windows ou d'un programme de service, mais pas asp.net, je ne sais pas pourquoi. J'espère que cette solution de contournement aide.

Répondre