【C#】DataTableを使ったBulkInsert
はい、本日も表題の通りでございます!!
DataTableからBulkInsertするとき。
SqlHelper使うのもいんですけど、Application Blockとかめんどいんで、
System.Data系で実装しましたよっと。
using System.Data; using System.Data.SqlClient; namespace Hoge { internal static class Hoge { internal static void BulkInsert(string connectionString, DataTable dataTable) { using (var dbConnection = new SqlConnection(connectionString)) { dbConnection.Open(); using (var bulkCopy = new SqlBulkCopy(dbConnection)) { bulkCopy.DestinationTableName = dataTable.TableName; foreach (var column in dataTable.Columns) { bulkCopy.ColumnMappings.Add(column.ToString(), column.ToString()); } bulkCopy.WriteToServer(dataTable); } } } } }
呼び出す側はこんな感じ
var dataTable = new HogeDataSet.HogeDataTable(); var row = dataTable.NewHogeRow(); row.Name= "Hoge"; dataTable.AddHogeRow(row); Hoge.BulkInsert("connectionString", dataTable);