-
Tôi nghĩ bạn đọc dữ liệu của tệp văn bản trong DataSet thì tốt hơn
-
Dùng thử SqlBulkCopy - Chèn hàng loạt vào SQL từ Ứng dụng C #
// connect to SQL using (SqlConnection connection = new SqlConnection(connString)) { // make sure to enable triggers // more on triggers in next post SqlBulkCopy bulkCopy = new SqlBulkCopy( connection, SqlBulkCopyOptions.TableLock | SqlBulkCopyOptions.FireTriggers | SqlBulkCopyOptions.UseInternalTransaction, null ); // set the destination table name bulkCopy.DestinationTableName = this.tableName; connection.Open(); // write the data in the "dataTable" bulkCopy.WriteToServer(dataTable); connection.Close(); } // reset this.dataTable.Clear();
hoặc
sau khi thực hiện bước 1 ở trên cùng
- Tạo XML từ DataSet
- Chuyển XML vào cơ sở dữ liệu và thực hiện chèn hàng loạt
bạn có thể kiểm tra chi tiết bài viết này:Chèn hàng loạt dữ liệu bằng cách sử dụng C # DataTable và chức năng OpenXML của máy chủ SQL
Nhưng nó không được thử nghiệm với 2 triệu bản ghi, nó sẽ làm nhưng tiêu tốn bộ nhớ trên máy vì bạn phải tải 2 triệu bản ghi và đưa nó vào.