Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/12/2014, 14:17
Avatar de ERIKPUGO
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>