Я пытаюсь вставить некоторые значения в базу данных mysql через С#
INSERT INTO cliente (column1, column2) VALUES (value1, value2);
set @ultima_pk = LAST_INSERT_ID();
INSERT INTO cliente_ref (refCol1, refCol2) VALUES (refvalue1, (SELECT @ultima_pk));
INSERT INTO cliente_ref (refCol1, refCol2) VALUES (refvalue1, (SELECT @ultima_pk));
Когда я тестирую его только в mysql, он работает отлично, но когда я пытаюсь вставить его через С#, я не могу.
Сообщение об ошибке:
Parameter '@ultima_pk' must be defined.
Но @ultima_pk не является параметром, это переменная mysql.
Ниже функция вставки
public bool insert(string query)
{
this.conectar();
cmd = new MySqlCommand(query, this.conexion);
cmd.ExecuteReader();
//bool retornar = cmd.ExecuteNonQuery() >= 1 ? true : false;
bool retornar = true;
this.desconectar();
return retornar;
}
Связь работает отлично.
Любое предложение. Как я могу передать @ultima_pk внутри запроса на C#?
insert()
здесь заставит вас написать код, который ужасно уязвим для атак SQL-инъекций, потому что в нем отсутствует механизм для приема данных параметров, которые отделены от строки запроса. - person Joel Coehoorn   schedule 15.06.2015