-
Мисля, че е по-добре да четете данни от текстов файл в DataSet
-
Изпробвайте SqlBulkCopy - Групово вмъкване в SQL от приложението 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();
или
след като направите стъпка 1 в горната част
- Създайте XML от DataSet
- Предайте XML към базата данни и направете групово вмъкване
можете да проверите тази статия за подробности:групово вмъкване на данни с помощта на C# DataTable и функцията на SQL сървър OpenXML
Но не е тестван с 2 милиона записа, той ще направи, но ще консумира памет на машината, тъй като трябва да заредите 2 милиона записа и да го вмъкнете.