我想将Excel文档加载到我的VB.NET项目中,然后将Excel文档中的所有数据加载到我的SQL Server数据库中。
SQL Server TCustomers
中的表名,它包含以下列:
CustomerID, FirstName, LastName, OrderID
这是我的数据在datagridview中的样子:
CustomerID FirstName LastName OrderID
01 Jack Collin 100
我的Excel表格以相同的方式设置了数据。
Cell: A1 ---- B1 ---- C1 ---- D1
CustomerID----FirstName-LastName-OrderID
-02 ---- Mike ---- Angel ---- 200
我尝试使用以下代码来完成此任务,但它没有做任何事情:
Dim ExcelConnection As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Spreadsheet.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=Yes""")
ExcelConnection.Open()
Dim expr As String = "SELECT * FROM [Sheet1$]"
Dim objCmdSelect As OleDbCommand = New OleDbCommand(expr, ExcelConnection)
Dim objDataR As OleDbDataReader
Dim SQLconne As New SqlConnection()
Dim ConnString As String = "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\MyDatabase.mdf;Integrated Security=True"
SQLconne.ConnectionString = ConnString
SQLconne.Open()
Using bulkCopy As SqlBulkCopy = New SqlBulkCopy(SQLconne)
bulkCopy.DestinationTableName = "TCustomers"
Try
objDataR = objCmdSelect.ExecuteReader
bulkCopy.WriteToServer(objDataR)
objDataR.Close()
SQLconne.Close()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Using
感谢任何帮助。
答案 0 :(得分:0)
之前我使用过SqlBulkCopy对象并遇到了同样的问题。
尝试明确设置列映射。它在我做的时候起作用了。
答案 1 :(得分:0)