我想從大型80MB的大型Excel文件導入數據包含約。使用VB.NET將200萬行記錄到SQL服務器表中。如何導入大型數據從Excel文件在sql服務器
我用BulkCopy方法將數據複製到SQL服務器表中。但是在讀取大型Excel文件數據時,它給我提供了OutOFMemoryException問題的錯誤。從Excel中加載大量數據以解決此問題時,有沒有更好的方法?
另外我將列數據類型指定爲nvarchar(max)。有什麼解決辦法可以在動態創建表格時選擇適當的數據類型。
這裏是代碼段:
Public Function BulkInsertDataTable(ByVal connectionString As String, ByVal tableName As String, ByVal table As DataTable, ByVal con1 As SqlConnection, ByVal tran As SqlTransaction) As Boolean
''IN USE - DO NOT REMOVE
Dim cmd1 As SqlCommand
Dim qry1 As String
If con1.State <> ConnectionState.Open Then
con1.Open()
End If
Dim tname As String = tableName
qry1 = "CREATE TABLE [" & tname & "] ("
Dim bulkCopy As New SqlBulkCopy(con1, SqlBulkCopyOptions.Default, tran)
bulkCopy.DestinationTableName = "[" & tableName & "]"
For j = 0 To table.Columns.Count - 1
If j <> table.Columns.Count - 1 Then
qry1 = qry1 & "[" & table.Columns(j).ColumnName & "] nvarchar(max),"
Else
qry1 = qry1 & "[" & table.Columns(j).ColumnName & "] nvarchar(max))"
End If
bulkCopy.ColumnMappings.Add(j, j)
Next
cmd1 = New SqlCommand(qry1, con1)
cmd1.Transaction = tran
cmd1.ExecuteNonQuery()
bulkCopy.WriteToServer(table)
bulkCopy.Close()
BulkInsertDataTable = True
End Function
它會在哪一行發生內存不足異常? –
@AndrewMorton,它從csv文件讀取數據時給我錯誤。 csvData = File.ReadAllText(targetPathwithName) – rahul16590