Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

[SOLUCIONADO] Error al insertar una llave primaria duplicada.

Estas en el tema de Error al insertar una llave primaria duplicada. en el foro de SQL Server en Foros del Web. Hola a todos. Estoy trabajando con mvc 4 y sql server 2012. El favor es el siguiente, necesito controlar una exception entity. ya que el ...
  #1 (permalink)  
Antiguo 17/12/2014, 14:17
Avatar de ERIKPUGO  
Fecha de Ingreso: marzo-2014
Ubicación: Bogota- Colombia
Mensajes: 16
Antigüedad: 10 años, 1 mes
Puntos: 0
Error al insertar una llave primaria duplicada.

Hola a todos.

Estoy trabajando con mvc 4 y sql server 2012.

El favor es el siguiente, necesito controlar una exception entity. ya que el me llama los datos pero cuando el cliente va a insertar un (id) repetido se revienta el código, por que este (id) ya esta en la base de datos guardado y no hay nada que le avise al usuario que ya esta creado, necesitaría un alert en la vista que le diga al usuario a la hora de guardar que ese id ya esta creado en la base de datos cuando le da click en el botón guardar.

Envio controlador

Código:
   public ActionResult Create()
        {
            ViewBag.ST_Estado_CodigoEstado = new SelectList(ES, "ID", "NAME");
            ViewBag.GN_PlanContable = new SelectList(EST, "ID", "NAME");

            return View();
        }


    [HttpPost]
        public ActionResult Create(GN_PlanContable gn_plancontable)
        {
            if (ModelState.IsValid)
            {
                db.GN_PlanContable.Add(gn_plancontable);
                db.SaveChanges();
                return RedirectToAction("confirm", "Home");
            }

            ViewBag.ST_Estado_CodigoEstado = new SelectList(db.ST_Estado, "CodigoEstado", "NombreEstado", gn_plancontable.ST_Estado_CodigoEstado);
            ViewBag.GN_PlanContable = new SelectList(db.GN_PlanContable, "Padre", "NombrePlanContable", gn_plancontable.Padre);
            return View(gn_plancontable);
        }
Envio modelo

Código:
 public partial class GN_PlanContable
    {
        public GN_PlanContable()
        {
            this.CT_ItemDeContabilidad = new HashSet<CT_ItemDeContabilidad>();
            this.CT_MovimientosContabilidad = new HashSet<CT_MovimientosContabilidad>();
            this.CT_SaldoContabilidad = new HashSet<CT_SaldoContabilidad>();
        }

        [Required(ErrorMessage = "*")]
        [Display(Name = "Codigo Cuenta")]
        [RegularExpression(@"[A-Za-z_0-9 .#_-]*\.?[A-Za-z_0-9 .#_-]+", ErrorMessage = "** ")]
        public string CodigoPlanContable { get; set; }
por ultimo envio el modelo vista y botón guardar
Código HTML:
@model SifActivoFijo.Models.GN_PlanContable

@using (Ajax.BeginForm("Create", "PlanContable", new AjaxOptions
{
    InsertionMode = InsertionMode.Replace,
    UpdateTargetId = "Resultado",
    OnSuccess = "$.fn.ParseFormValidation('createForm')"
}, new { @id = "createForm", @name = "createForm" }))
{

<div class="separadores">
            <div class="flota">
                <div class="editor-label">
                    @Html.LabelFor(model => model.CodigoPlanContable)
                </div>
                <div class="editor-field">
                    @Html.EditorFor(model => model.CodigoPlanContable)
                    @Html.ValidationMessageFor(model => model.CodigoPlanContable, "", new { @class = "validate" })  

<div class="flota">
                        <input type="submit" value=" " class="guardar" />
                    </div>

                   </div> 
  #2 (permalink)  
Antiguo 18/12/2014, 14:08
Avatar de ERIKPUGO  
Fecha de Ingreso: marzo-2014
Ubicación: Bogota- Colombia
Mensajes: 16
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Error al insertar una llave primaria duplicada.

ya tengo la solución



public ActionResult Create(GN_PlanContable gn_plancontable)
{
if (ModelState.IsValid)
{
if ((!string.IsNullOrWhiteSpace(gn_plancontable.Codig oPlanContable)))
{
ModelState.AddModelError("", "Ya existe un Plan contable con este nombre");
}

if (ModelState.IsValid)
{
db.GN_PlanContable.Add(gn_plancontable);
db.SaveChanges();
return RedirectToAction("confirm", "Home");
}
}
ViewBag.ST_Estado_CodigoEstado = new SelectList(db.ST_Estado, "CodigoEstado", "NombreEstado", gn_plancontable.ST_Estado_CodigoEstado);
ViewBag.GN_PlanContable = new SelectList(db.GN_PlanContable, "Padre", "NombrePlanContable", gn_plancontable.Padre);
return View(gn_plancontable);
}
ayuden de vez en cuando jajajaj
  #3 (permalink)  
Antiguo 18/12/2014, 14:17
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Error al insertar una llave primaria duplicada.

Cita:
Iniciado por ERIKPUGO
ayuden de vez en cuando jajajaj
Pues para la siguiente, postea en el foro que corresponda y no en el primero que se te venga a la mente, de esta forma habrá gente que incluso te ayude

Etiquetas: .net, c#, diseño-web, html, mvc
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:52.