2011-02-03 20 views
5

以前はSQLBulkCopyクラスを使用して、MS SQL Serverデータベースにデータをロードしました。結果は非常に良好で、私が意図したとおりに正確に働いていました。C#を使用してMySQLに一括挿入する方法

SSISでスクリプトタスクを使用して、ODBCまたはADO.NET接続(推奨?)を使用してMySQL(5.5.8)データベースにデータを一括ロードしようとしています。

私のデータセットの列は、MySQLテーブルの列に対応しています。 MySQLデータベースにデータセットの一括挿入を行う最良の方法は何ですか?

+2

、ちょうど 'LOAD DATAを書きますINFILE'クエリを実行し、MySQLはファイル自体をロードします。 –

+0

ダン、提案ありがとう データを挿入する前に、一連のテキストファイルを読み込むために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

同じコードを試しましたが、挿入されていないコードは常にゼロのままです。 – rahularyansharma

+0

@rahularyansharma MySQLのインストールでLOAD_DATA_INFILE(http://dev.mysql.com/doc/refman/5.1/en/connector-net-programming-bulk-loader.html)がサポートされていることを確認してください。MySQLBulkLoaderは単なるラッパーです。 –

+0

私はコマンドプロンプトからこのコマンドを実行すると動作します! – rahularyansharma

関連する問題