使用C#将大量CSV数据插入到mysql数据库的最快方法是什么?

我想从Excel数据透视表插入一个数据文件到MySQL使用C#。 我正在使用phpmyadmin。 我能够使用插入语句来插入数据。 但是,我发现插入的性能对于我的目的来说是非常慢的,因为数据文件将包含至less15000行,并且此操作将具有较高的出现次数。 目前我有一个数组列表,其中包含插入前的数据。 我在网上阅读,发现我应该使用Load Data Infile并将我的数据存入CSV文件。 我的CSV文件没有与我的SQL表相同数量的列。 我不知道如何将地址传递给CSV文件,如果其中一行是重复的,我不希望整个操作失败。 如果可以帮助我的情况,我想使用in文件方法。

我现在得到的错误是:找不到文件(Errcode:22“无效的参数”)

这是我的代码到目前为止尝试in文件方法。

OpenFileDialog ofd3 = new OpenFileDialog(); if (ofd3.ShowDialog() == DialogResult.OK) { DirectoryInfo di = new DirectoryInfo("../../files/"); string hours = ofd3.FileName; string cmd = "LOAD DATA INFILE '" + hours + "' INTO TABLE timesheet FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'"; mysql_insert_infile(cmd); } private void mysql_insert_infile(string query) { using (var connection = new MySqlConnection("Server=localhost;Database=projectdash;Uid=root;Pwd=;allow zero datetime=yes;Allow User Variables=True")) using (var cmd = connection.CreateCommand()) { connection.Open(); cmd.CommandText = query; try { cmd.ExecuteNonQuery(); } catch (Exception w) { // MessageBox.Show(w.Message); } } } 

我敢打赌,将整个文件加载到内存中,然后创build一个包含至less1000行的“ BULK ”插入命令。
您可以清理数据以避免重复,然后仅使用您需要的列创build命令。
请记住插入多行,如下所述:

在mysql中插入多行