2011-02-03 11 views
5

Użyłem wcześniej klasy SQLBulkCopy do załadowania danych do bazy danych MS SQL Server. Wyniki były bardzo dobre i działały dokładnie tak, jak zamierzałem.Jak wstawić luzem do MySQL przy użyciu C#

Teraz, próbuję użyć zadania skryptowego w SSIS do masowego ładowania danych do bazy danych MySQL (5.5.8) przy użyciu połączenia ODBC lub ADO.NET (zalecane?).

Kolumny w zbiorze danych odpowiadają kolumnom tabeli MySQL. Jaki jest najlepszy sposób na wstawienie zbiorczego zestawu danych do bazy danych MySQL?

+2

Jeśli zestaw danych w formacie tekstowym, nie trzeba napisać program, wystarczy napisać 'LOAD DATA Zapytanie INFILE' i MySQL załadują sam plik. –

+0

Dan, dziękuję za sugestię Będę planował SSIS, aby załadować serię plików tekstowych, i muszę sprawdzić zawartość pliku, zanim zdecyduję się wstawić dane. Właśnie dlatego robię to programowo. – yamn2

Odpowiedz

13

Można użyć MySqlBulkLoader dostarczonymi z MySQL Connector 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

Próbowałem tego samego kodu, ale jego nie działa włożone zawsze pozostaje zero. – rahularyansharma

+0

@rahnalansharma Upewnij się, że twoja instalacja MySQL obsługuje LOAD_DATA_INFILE (http://dev.mysql.com/doc/refman/5.1/en/connector-net-programming-bulk-loader.html), ponieważ MySQLBulkLoader jest po prostu otoką . –

+0

po uruchomieniu tego polecenia z wiersza polecenia działa! – rahularyansharma

Powiązane problemy