簡介:NPOI批量導入大量數據
使用SqlBulkCopy 可以將datatable里面的大量數據批量復制到數據庫中,而不用擔心性能問題,比系統中的傳統做法(每20行數據執行一遍mydb.execute強多了)
SqlBulkCopyColumnMapping(源列名,目標列名)
附代碼如下:
Try Using sqlblk As New SqlBulkCopy(MyDB.GetSqlConnectionString()) sqlblk.BatchSize = DtInput.Rows.Count sqlblk.BulkCopyTimeout = 100 sqlblk.DestinationTableName = "cg_ProductBillDtl" sqlblk.ColumnMappings.Add(New SqlBulkCopyColumnMapping("ProductBillGUID", "ProductBillGUID")) sqlblk.ColumnMappings.Add(New SqlBulkCopyColumnMapping("ProductBillDtlGUID", "ProductBillDtlGUID")) sqlblk.ColumnMappings.Add(New SqlBulkCopyColumnMapping("ProductGUID", "ProductGUID")) sqlblk.ColumnMappings.Add(New SqlBulkCopyColumnMapping("ProductTypeCode", "ProductTypeCode")) sqlblk.ColumnMappings.Add(New SqlBulkCopyColumnMapping("ProductName", "ProductName")) sqlblk.ColumnMappings.Add(New SqlBulkCopyColumnMapping("ProductSpec", "ProductSpec")) sqlblk.ColumnMappings.Add(New SqlBulkCopyColumnMapping("ProductModel", "ProductModel")) sqlblk.ColumnMappings.Add(New SqlBulkCopyColumnMapping("ProductUnit", "ProductUnit")) sqlblk.ColumnMappings.Add(New SqlBulkCopyColumnMapping("Price", "Price")) sqlblk.ColumnMappings.Add(New SqlBulkCopyColumnMapping("Remark", "Remark")) sqlblk.WriteToServer(DtInput) End Using Catch ex As Exception MyDB.LogException(ex) End Try