【发布时间】:2010-02-24 07:27:45
【问题描述】:
我正在使用 asp.net oledb 将信息导出到 excel 文件。当要导出的信息变得太大时,我遇到了问题,在这种情况下,我在下面给出的代码中,生成的 excel 文件变成了一个空的电子表格。
如果我将循环更改为 1123 以插入行。生成的excel文件很好,显示了1125行4列。
无论有多少行,Windows 形式的测试程序也可以正常工作。
代码已经简化,sql插入命令中的“信息...”代表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,不知道为什么。希望此解决方法有所帮助。
【问题讨论】:
标签: asp.net vb.net excel oledb