簡體   English   中英

使用c#將ExcelSheet數據插入MySql數據庫

[英]Insert ExcelSheet data into MySql Database using c#

在使用 MS SQL 的解決方案中,代碼如下所示。 現在我嘗試為 MySQL 做一些類似的事情。我嘗試使用 MysqlBulkLoader 但它不起作用

SqlBulkCopy objbulk = new SqlBulkCopy(connect);
    //MySqlBulkLoader objbulk = new MySqlBulkLoader(connect);

    //assigning Destination table name
    objbulk.DestinationTableName = "barter_proposals";
    //Mapping Table column
    objbulk.ColumnMappings.Add("company", "company");
    objbulk.ColumnMappings.Add("website_a", "website_a");
    objbulk.ColumnMappings.Add("email_id", "email_id");
    objbulk.ColumnMappings.Add("contact_name", "contact_name");
    //inserting Datatable Records to DataBase
    connect.Open();
    objbulk.WriteToServer(Exceldt);
    connect.Close();

MySqlBulkLoader使用與SqlBulkCopy完全不同的方式來執行批量插入/更新:它利用基於文件的輸入(例如 TXT 或 CSV)而不是直接使用DataTable實例。 作為一種解決方法,您可以將DataTable導出到 CSV 文件並通過MySqlBulkLoader讀取內容,如下例所示:

1) 數據表轉CSV

using (var sw = new StreamWriter("/path/to/source/file.csv", false))
{
    // assume Exceldt is your 'DataTable' object
    int colCount = Exceldt.Columns.Count;
    foreach (DataRow row in Exceldt.Rows)
    {
        for (int i = 0; i < colCount; i++)
        {
            if (!Convert.IsDBNull(row[i]))
            {
                sw.Write(row[i].ToString());
            }
            if (i < colCount - 1)
            {
                sw.Write(",");
            }
        }
        sw.Write(sw.NewLine);
    }
}

2) MySqlBulkLoader從 CSV 文件批量插入

// creating bulk loader instance
MySqlBulkLoader objbulk = new MySqlBulkLoader(connect);
objbulk.TableName = "barter_proposals";
objbulk.Timeout = 600; // set command timeout
objbulk.FieldTerminator = ",";
objbulk.LineTerminator = "\r\n";
objbulk.FileName = "/path/to/source/file.csv";
objbulk.NumberOfLinesToSkip = 1; // adjust this depending on CSV file headers

objbulk.Load();

// delete the CSV file here (optional)

參考:

使用 MySqlBulkLoader 類 (5.13) - MySQL Docs

MySQL - 使用 .NET 連接器 MySqlBulkLoader 類的批量數據導入

帶有列映射的 MySqlBulkLoader?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM