【发布时间】:2015-08-30 07:31:34
【问题描述】:
我正在尝试通过 C# 向 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 中测试它时,可以正常工作,但是当我尝试通过 C# 插入它时,我不能。
错误信息:
Parameter '@ultima_pk' must be defined.
但是@ultima_pk 不是param,是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;
}
连接正常。
任何建议如何在 C# 的查询中传递@ultima_pk?
【问题讨论】:
-
这里的
insert()方法将迫使您编写极易受到 sql 注入攻击的代码,因为它缺少一种接受与查询字符串分开的参数数据的机制。 -
你还有什么建议推荐给我的?
-
查看我的答案以了解如何操作。
-
谢谢大家。我在这里找到了答案.. stackoverflow.com/questions/21795565/… 将 AllowUserVariables=True 添加到连接字符串
标签: c# mysql sql tsql sqlcommand