【发布时间】:2016-06-24 03:32:14
【问题描述】:
我正试图让这个insert 语句起作用。
string sql = "INSERT INTO usuario (apellido,nombre,email,password,id_localidad) "
+ "VALUES (?apellido,?nombre,?email,?password,?idLocalidad); ";
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.Prepare();
cmd.Parameters.AddWithValue("apellido ", usuario.apellido);
cmd.Parameters.AddWithValue("nombre ", usuario.nombre);
cmd.Parameters.AddWithValue("email ", usuario.email);
cmd.Parameters.AddWithValue("password ", password);
cmd.Parameters.AddWithValue("idLocalidad ", usuario.localidad.idLocalidad);
cmd.ExecuteNonQuery();
但又一次,我得到一个异常说需要定义第一个参数。如果我使用 @ 占位符,当我添加参数时,我会收到 null 错误。我还在连接字符串中添加了以下内容。
AllowUserVariables=True
我知道这个问题的变种已经出现在整个网站上,但我遵循了提供的建议,但仍然无法使其发挥作用。
任何帮助将不胜感激。谢谢
【问题讨论】:
-
能否请您添加您尝试过的带有
@ placeholder的代码? -
string sql = "INSERT INTO usuario (apellido,nombre,email,password,id_localidad) " + "VALUES (@apellido,@nombre,@email,@password,@idLocalidad); ";
-
你如何添加参数?
-
cmd.Parameters.AddWithValue("@apellido ", usuario.apellido); cmd.Parameters.AddWithValue("@nombre", usuario.nombre); cmd.Parameters.AddWithValue("@email ", usuario.email); cmd.Parameters.AddWithValue("@password", 密码); cmd.Parameters.AddWithValue("@idLocalidad ", usuario.localidad.idLocalidad);
-
看起来不错。让我知道给出这种例外的行吗?这次
标签: c# mysql asp.net-mvc parameterized-query