-
Jag tror att det är bättre att du läser data från textfil i DataSet
-
Prova SqlBulkCopy - Bulk infoga i SQL från C# App
// 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();
eller
efter att ha gjort steg 1 överst
- Skapa XML från DataSet
- Skicka XML till databasen och gör massinsättning
du kan läsa den här artikeln för detaljer:Massinfogning av data med C# DataTable och SQL-serverns OpenXML-funktion
Men den är inte testad med 2 miljoner rekord, den kommer bara att förbruka minne på maskinen eftersom du måste ladda 2 miljoner poster och sätta in den.