@baimkin

Вставка множества строк MySQL?

Нужно загрузить много строк с данными в MySQL на WinForms проекте.

Попробовал так:
//Cписок для команд
List<MySqlCommand> listCommands = new List<MySqlCommand>();

//Добавляю много команд в список таким способом
string com = "INSERT INTO tbl_name (Column1, Column2, Column3) VALUES (@Value1, @Value2, @Value3);";
MySqlCommand command = new MySqlCommand(com);
command.Parameters.AddWithValue("@Value1", var1);
command.Parameters.AddWithValue("@Value2", var2);
command.Parameters.AddWithValue("@Value3", var3);
listCommands.Add(command);

//Прохожусь по списку и применяю каждую команду из списка
using (MySqlConnection con = DBUtils.GetDBConnection())
{
    con.Open();
    foreach (var c in listCommands)
    {
        c.Connection = con;
        c.Prepare();
        c.ExecuteNonQuery();
    }
    con.Close();
}


но беда в том что так получается медленно.

Как можно добавлять значения переменных для такой конструкции:
string com = "INSERT INTO tbl_name (Column1, Column2, Column3) 
VALUES 
(@Value1, @Value2, @Value3),
(@Value1, @Value2, @Value3),
(@Value1, @Value2, @Value3),
(@Value1, @Value2, @Value3);";

т.е чтобы сразу множество строк добавлялось одним инсертом, я думаю это решило бы проблему.
  • Вопрос задан
  • 111 просмотров
Пригласить эксперта
Ответы на вопрос 1
BojackHorseman
@BojackHorseman Куратор тега MySQL
...в творческом отпуске...
та не. один раз prepare, а в цикле менять параметры и выполнять.

upd. транзакцию забыл добавить, если innodb
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы