摘要:.NET - 批次輸入資料進DB
很久以前似乎有想過是否有個方式可以把整個Table塞進DataBase,
一來是覺得用迴圈去一筆一筆擷取有點麻煩,二來是覺得如此效能比較好,
最近爬到一個好東西 "SqlBulkCopy"
PS.注意的是,批次進DB的欄位架構要和Table的架構相同,不然會出現error message
MSDN上面已經清楚的介紹了屬性、建構式了、方法。 官方就寫的很清楚了
但是我這邊還是來測試一下,程式碼如下。
Dim dt As DataTable = New DataTable
Dim newRow As DataRow = Nothing
dt.Columns.Add("Title")
dt.Columns.Add("Roles")
For i As Integer = 0 To 2
newRow = dt.NewRow
newRow(0) = "倚天屠龍" + i.ToString
newRow(1) = "趙敏" + i.ToString
dt.Rows.Add(newRow)
Next
If dt.Rows.Count > 0 Then
Using bulkcopy As SqlBulkCopy = New SqlBulkCopy(app.db.ConnectionString)
bulkcopy.DestinationTableName = "Mybook"
bulkcopy.BatchSize = dt.Rows.Count
bulkcopy.BulkCopyTimeout = 120
bulkcopy.WriteToServer(dt)
bulkcopy.Close()
End Using
End If
批次進DB的資料呈現如下
如此就很順利的完成了 GOOD ~