Я хотел бы попробовать производительность MySqlBulkLoader, зная, что метод Adapter.update (), который я использую, требует около 30 минут для запуска. Я понимаю, что вы должны go через файл, чтобы сделать это, поэтому вот мой код:
private void button14_Click(object sender, EventArgs e)
{
string fileName = @"C:\Users\Utilisateur\ds.txt";
if (File.Exists(fileName))
{
File.Delete(fileName);
}
using (StreamWriter sw = File.CreateText(fileName))
{
foreach (DataRow row in Globals.ds.Tables[0].Rows)
{
foreach (object item in row.ItemArray)
{
string itemstr = item.ToString();
sw.Write((string)itemstr + "\t");
}
sw.WriteLine();
}
}
using (var conn = new MySqlConnection(Globals.connString))
{
conn.Open();
MySqlCommand comm = new MySqlCommand("TRUNCATE Song",conn);
comm.ExecuteNonQuery();
var bl = new MySqlBulkLoader(conn)
{
TableName = Globals.ds.Tables[0].ToString(),
Timeout = 600,
FieldTerminator = "\t",
LineTerminator = "\n",
FileName = fileName
};
var numberOfInsertedRows = bl.Load();
Console.WriteLine(numberOfInsertedRows);
}
}
Файл генерируется нормально. но в строке var numberOfInsertedRows = bl.Load();
во время выполнения появляется следующая ошибка:
MySql .Data.MySqlClient.MySqlException: «Не удается получить статистику» / var / packages / MariaDB10 / target / mysql / disk / C: \ Users \ Utilisateur \ ds.txt '(код ошибки: 2 "Нет такого файла или каталога")'
Я пытался поместить "/" вместо "\" в fileName но это та же ошибка.
Понятия не имею, что происходит, кто-нибудь может помочь?
Спасибо