因此,我在 Excel 中有一个巨大的文件,我想将其用于 Visual Studio WPF 中的用户界面。我将其余的数据库存储在 Visual Studio 附带的 SQL Server 中。有什么方法可以将这些数据从 Excel 导入到我的 Visual Studio Sql Server 中?
谢谢你的帮助。
因此,我在 Excel 中有一个巨大的文件,我想将其用于 Visual Studio WPF 中的用户界面。我将其余的数据库存储在 Visual Studio 附带的 SQL Server 中。有什么方法可以将这些数据从 Excel 导入到我的 Visual Studio Sql Server 中?
谢谢你的帮助。
就我个人而言,我会使用 Microsoft.Office.Interop.Excel 命名空间并编写一些类似这样的代码,将文件保存为 CSV,然后使用 BULK COPY 命令或在 Microsoft c#.net 中将其转储到 SQL 中,您可以使用
SqlBulkCopy 对象来执行此操作。
因此,您将逐行读取 CSV 并将其写入 DataTable。然后使用以下内容写入 SQL。
VB.NET 中的 bulkCopy 对象示例(对不起,我在 vb.net 中使用它而不是 c#)
Public Function InsertDataToDatabase(ByVal _strDestinationTableName As String, ByRef _dtData As DataTable, ByRef _sqlConnection As SqlConnection) As Boolean
Try
RaiseEvent BulkCopyStartEvent(Me, _dtData.Rows.Count())
OpenConnection()
sBulkCopy = New SqlBulkCopy(DatabaseConnection)
'Clear out all data in the TmpTable
Dim sqlComm As New SqlCommand(String.Format("TRUNCATE TABLE {0}", _strDestinationTableName), DatabaseConnection)
sqlComm.ExecuteNonQuery()
With sBulkCopy
sBulkCopy.DestinationTableName = _strDestinationTableName
sBulkCopy.NotifyAfter = _dtData.Rows.Count / 100 ' Notify after every 1%
sBulkCopy.WriteToServer(_dtData)
sBulkCopy.Close()
End With
RaiseEvent BulkCopyCompleteEvent(Me, _dtData.Rows.Count(), arrExceptionStringList.Count())
Return True
Catch ex As BulkCopyUtilityErrorException
RaiseEvent BulkCopyErrorEvent(Me, ex)
Finally
CloseConnection()
End Try
End Function