使用MVC 2,MySQL
def my_min(ary)
ary.inject { |min, x| yield(x, min) == -1 ? x : min }
end
ary = %w(albatross dog horse)
my_min(ary) { |a, b| a.length <=> b.length }
#=> "dog"
这是我的控制器代码 我的错误代码是:
Lo sentimos; se produjo un error al procesar la solicitud。 MySql.Data.MySqlClient.MySqlException(0x80004005):重复输入&#39;&#39;关键&#39; PRIMARY&#39;在MySql.Data.MySqlClient.MySqlStream.ReadPacket()在MySql.Data.MySqlClient.NativeDriver.GetResult(的Int32&安培; affectedRow,Int64的&安培; insertedId)在MySql.Data.MySqlClient.Driver.GetResult(的Int32 statementId,的Int32&安培; affectedRows,Int64的&安培; insertedId)在MySql.Data.MySqlClient.Driver.NextResult(的Int32 statementId,布尔力)在MySql.Data.MySqlClient.MySqlDataReader.NextResult()在MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(的CommandBehavior行为)在MySql.Data .MySqlClient.MySqlCommand.ExecuteReader()位于E:\ Proyecto \ TestsDByAjax \ MvcApplication1 \ Controllers \ ValidarController.cs:第61行的MvcApplication1.Controllers.ValidarController.Register()中的MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery() p>
第61行说public ActionResult Register()
{
string name = Request.Form["name"];
string password = Request.Form["password"];
ViewData["name"] = name;
ViewData["password"] = password;
// Pasa los datos al ViewData, hace el insert
MySqlCommand cmd = new MySqlCommand("INSERT INTO tbl_alumnos(Nombre, Apellido) values('"+name+"','"+password+"')", cn);
try
{
// Intenta conectarse e insertar los datos
cn.Open();
cmd.ExecuteNonQuery();
return View("~/Views/Inicial/Inicial.aspx");
}
catch (Exception ex)
{
// si no puede, error
ViewData["ex"] = ex;
System.Diagnostics.Debug.WriteLine(ex);
return View("Error");
}
}
答案 0 :(得分:0)
我的意思是,我已经有了一个错误的答案,我只是不知道你想用它做什么?
"INSERT INTO tbl_alumnos(Nombre, Apellido) values('"+name+"','"+password+"')"
在上面的语句中,您将名称和密码插入表中。并且您声称另一个字段,即DNI
是表中的主键。你显然不会在DNI
中插入任何内容。如果字段DNI
具有标识插入,则您不会对上述语句产生问题。但你可能不会这就是抱怨的原因。所以,如果你提供独特的DNI
,你就可以了