Asp.net - 批次輸入資料進DB (DataTable To DataBase Table)

摘要:.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 ~