2011-02-03 3 views
5

이전에 SQLBulkCopy 클래스를 사용하여 MS SQL Server db에 데이터를로드했습니다. 결과는 매우 좋았고, 의도했던대로 정확하게 작동했습니다.C#을 사용하여 MySQL에 대량 삽입하는 방법

이제 SSIS의 스크립트 작업을 사용하여 ODBC 또는 ADO.NET 연결 (권장)을 사용하여 MySQL (5.5.8) 데이터베이스로 데이터를 대량로드합니다.

내 데이터 세트의 열은 MySQL 테이블의 열과 일치합니다. MySQL 데이터베이스에 데이터 집합의 대량 삽입을 수행하는 가장 좋은 방법은 무엇입니까?

+2

, 단지'LOAD 데이터 쓰기 INFILE 쿼리와 MySQL은 파일 자체를로드합니다. –

+0

Dan, 제안에 감사드립니다. 데이터를 삽입하기 전에 일련의 텍스트 파일을로드하도록 SSIS를 예약하고 파일 내용을 확인해야합니다. 이것이 내가 프로그램으로하는 이유입니다. – yamn2

답변

13

당신은 .NET에 대한 MySQL의 커넥터와 함께 제공된 MySqlBulkLoader을 사용할 수 있습니다 : 데이터 세트가 텍스트 형식으로, 당신은 프로그램을 작성하지 않아도되는 경우

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

동일한 코드를 시도했지만 삽입되지 않은 코드는 항상 0으로 유지됩니다. – rahularyansharma

+0

@rahularyansharma MySQLBulkLoader는 단지 래퍼이므로 LOAD_DATA_INFILE (http://dev.mysql.com/doc/refman/5.1/en/connector-net-programming-bulk-loader.html)을 지원하는지 확인하십시오. . –

+0

명령 프롬프트에서이 명령을 실행하면 작동합니다! – rahularyansharma

관련 문제