-
Myślę, że lepiej odczytać dane z pliku tekstowego w DataSet
-
Wypróbuj SqlBulkCopy - Wstaw zbiorczo do SQL z aplikacji 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();
lub
po wykonaniu kroku 1 u góry
- Utwórz XML z zestawu danych
- Przekaż XML do bazy danych i wstawiaj zbiorczo
możesz sprawdzić ten artykuł, aby uzyskać szczegółowe informacje:Masowe wstawianie danych przy użyciu funkcji C# DataTable i serwera SQL OpenXML
Ale nie przetestowano go z 2 milionami rekordów, zrobi to, ale zużyje pamięć na komputerze, ponieważ musisz załadować 2 miliony rekordów i włożyć go.