2011-02-03 10 views
5

Ho già utilizzato la classe SQLBulkCopy per caricare i dati in un db di MS SQL Server. I risultati sono stati molto buoni e hanno funzionato esattamente come volevo.Come inserire in massa in MySQL utilizzando C#

Ora, sto cercando di utilizzare un'attività di script in SSIS per caricare in blocco i dati in un database MySQL (5.5.8) utilizzando una connessione ODBC o ADO.NET (consigliato?).

Le colonne nel set di dati corrispondono alle colonne della tabella MySQL. Qual è il modo migliore per inserire un bulk set di un set di dati in un database MySQL?

+2

Se il set di dati è in un formato di testo, non è necessario scrivere un programma, basta scrivere un 'LOAD DATA La query INFILE' e MySQL caricheranno il file stesso. –

+0

Dan, grazie per il suggerimento Pianificherò il SSIS per caricare una serie di file di testo e dovrò controllare alcuni contenuti di file prima di decidere di inserire i dati. Questo è il motivo per cui lo sto facendo in modo programmatico. – yamn2

risposta

13

È possibile utilizzare il MySqlBulkLoader fornito con il connettore di MySQL per NET:

var bl = new MySqlBulkLoader(connection); 
bl.TableName = "mytable"; 
bl.FieldTerminator = ","; 
bl.LineTerminator = "\r\n"; 
bl.FileName = "myfileformytable.csv"; 
bl.NumberOfLinesToSkip = 1; 
var inserted = bl.Load(); 
Debug.Print(inserted + " rows inserted."); 
+0

Ho provato lo stesso codice ma il suo funzionamento non inserito rimane sempre zero. – rahularyansharma

+0

@rahularyansharma assicurati che l'installazione di MySQL supporti LOAD_DATA_INFILE (http://dev.mysql.com/doc/refman/5.1/en/connector-net-programming-bulk-loader.html) poiché MySQLBulkLoader è solo un wrapper che lo circonda . –

+0

quando eseguo questo comando dal prompt dei comandi funziona! – rahularyansharma

Problemi correlati