我使用asp.net oledb将信息导出到excel文件。当导出的信息变得太大时遇到问题,在这种情况下我给出的代码,生成的excel文件变成一个空的电子表格。
如果我将循环更改为1123以插入行。生成的excel文件很好,显示了1125行和4列。
无论行数多少,Windows窗体中的测试程序也能正常工作。
代码已简化,sql insertion命令中的“information ...”代表1803个字符。
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
我该怎么办?感谢。
解决方法:
您好,我也无法找到问题的解决方案。我最终做的是使用另一个单独的Windows服务来运行该过程。从Windows窗体或服务程序运行代码完美运行,但不是asp.net,不知道为什么。希望这种解决方法有所帮助。