そのため、Visual Studio WPF のユーザー インターフェイスに使用したい Excel に巨大なファイルがあります。Visual Studio に付属の SQL Server に残りのデータベースを保存しています。このデータを Excel から Visual Studio Sql Server にインポートする方法はありますか?
ご協力いただきありがとうございます。
そのため、Visual Studio WPF のユーザー インターフェイスに使用したい Excel に巨大なファイルがあります。Visual Studio に付属の SQL Server に残りのデータベースを保存しています。このデータを Excel から Visual Studio Sql Server にインポートする方法はありますか?
ご協力いただきありがとうございます。
個人的には、Microsoft.Office.Interop.Excel 名前空間を使用して、このようなコードを記述してファイルを CSV として保存し、BULK COPY コマンドを使用して SQL にダンプするか、Microsoft c#.net で使用できます。
これを行うには、SqlBulkCopy オブジェクトを使用します。
したがって、CSV を 1 行ずつ読み取り、DataTable に書き出します。次に、以下を使用して SQL に書き込みます。
VB.NET での bulkCopy オブジェクトの例 (申し訳ありませんが、c# ではなく vb.net で使用しています)
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