Я использую следующий код:Multiple INSERT в одном запросе с помощью MySqlCommand
string cmd = "INSERT INTO " + Tables.Lux() + " VALUES(NULL, @Position, @Mode, @Timer)";
try
{
using (var MyConnection = new MySqlConnection(ConfigurationManager.ConnectionStrings["DataFormConnection"].ConnectionString))
{
using (MySqlCommand command = new MySqlCommand(cmd, MyConnection))
{
MyConnection.Open();
command.Parameters.Add(new MySqlParameter("Position", Element.Position));
command.Parameters.Add(new MySqlParameter("Mode", Element.Mode));
command.Parameters.Add(new MySqlParameter("Timer", Element.Timer));
command.ExecuteNonQuery();
}
}
}
Я использую приведенный выше код для вставки данных из списка элемента, содержащего 100 наименований. Я хотел бы добавить 100 значений только один запрос, и я знаю, что SQL заявление выглядит следующим образом:
INSERT INTO table (a,b) VALUES (1,2), (2,3), (3,4);
, но я не знаю, как применить эту структуру, используя MySqlCommand.Parameters
подход.
Моя цель состоит в том, чтобы передать эту функцию List<Element>
вместо Element
и создать оператор INSERT
со всеми элементами в списке, который будет выполнен только в одном запросе. Любая помощь, пожалуйста?
спасибо.
Нужны ли значения из другой таблицы SQL? –
Вы можете создать вызов хранимой процедуры один раз, а затем здесь сделать инструкцию insert, если вы вставляете из другой таблицы, вы можете использовать эту таблицу для генерации ваших данных, которые будут вставлены. –
Ответ на ваш вопрос в вашем сообщении/коде. Вам просто нужно добавить параметры не значения. Позже вы можете заменить значение параметра непосредственно перед вызовом метода ExecuteNonQuery(). – adatapost