接收"复制主要密钥"

时间:2015-09-04 21:37:02

标签: c# mysql model-view-controller duplicates

使用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"); } }

1 个答案:

答案 0 :(得分:0)

我的意思是,我已经有了一个错误的答案,我只是不知道你想用它做什么?

"INSERT INTO tbl_alumnos(Nombre, Apellido) values('"+name+"','"+password+"')"

在上面的语句中,您将名称和密码插入表中。并且您声称另一个字段,即DNI是表中的主键。你显然不会在DNI中插入任何内容。如果字段DNI具有标识插入,则您不会对上述语句产生问题。但你可能不会这就是抱怨的原因。所以,如果你提供独特的DNI,你就可以了