2012-04-30 100 views
0

我有csv文件,我想將其轉儲到數據庫中。所以我裝箱的文件的循環,在循環中,我創建了一個名爲數據表的每一行將列表數據插入到C#中的mySQL數據庫的有效方法#

StreamReader file = new StreamReader(itemChecked.ToString());//read the file 

while ((line = file.ReadLine()) != null) 
{ 
    if (start_flag == true) // start processing the numbers, get the real data 
    { 
     List<string> data = new List<string>(); 
     data.AddRange(line.Replace("\"", "").Split(',').AsEnumerable()); 
    } 
} 

到目前爲止好。

現在我想插入列表數據到數據庫中。這個清單非常大。我不想要鍵入他們的,像這樣每一個:

insert into table1 (tablenames) values (a, b, c on and on) 

我如何循環列表和數據插入到數據庫?

+0

你嘗試過什麼?你有沒有執行任何命令到MySQL數據庫? – empi

+0

請看[這個問題](http://stackoverflow.com/questions/5592196/mysql-bulk-insert-a-text-file),它看起來正是你的反應 – Steve

+0

C#絕對不是做的方法這個。 [這是一個關於SO的問題](http://stackoverflow.com/questions/2811096/mysql-bulk-insert-from-csv-data-files)關於如何使用本機MySQL實用程序來完成此操作。 –

回答

0

首先,您需要使用the ADO.NET Driver for MySQL (Connector/NET)連接到數據庫。

其次,你會想打開一個與數據庫的連接,然後插入一些數據:

var connection = new MySqlConnection(); 
connection.ConnectionString = 
    "server=localhost;" 
    + "database=DBNAME;" 
    + "uid=USERNAME;" 
    + "password=PASSWORD;"; 

connection.Open(); 

foreach(var datum in data) 
{ 
    var command = connection.CreateCommand(); 
    command.CommandText = 
     "insert into table1 (tablenames)" 
     + " values " 
     + "(a, b, c on and on)"; 

    var result = command.ExecuteReader(); 
} 

我的例子是based off this article。這不是一個完美的解決方案,但它應該讓你開始。您可能希望look into MySQL Transactions將您的插入批處理成有效分組(取決於數據大小一次可能爲100-1000)。

+0

我需要循環不在插入的值。我有一個包含值的列表 –

+0

也許一些示例數據會很有用,因爲我不認爲我理解你想要的內容。 – Nate

相關問題