none
Error al borrar un registro de la base de datos SQL server asp.net RRS feed

  • Pregunta

  • e intentado de estas dos formas.

    1

    [HttpPost, ActionName("Delete")]
    public ActionResult DeleteConfirmed(int id)// el id llega con toda normalidad
    {
        db.Entry(db.Detalle.Find(id)).State = EntityState.Deleted;
        db.SaveChanges();
    
        return RedirectToAction("Index");
    }

    2

    [HttpPost, ActionName("Delete")]
    public ActionResult DeleteConfirmed(int id) // el id llega con toda normalidad
    {
        Detalle idar = db.Detalle.Find(id);
        db.Detalle.Remove(idar);
        db.SaveChanges();
    
        return RedirectToAction("Index");
    }

    y los dos me dan el mismo error introducir la descripción de la imagen aquí

    jueves, 21 de diciembre de 2017 14:37

Respuestas

  • no uses linq, usala de esta manera y seras feliz..

     string query = @"Delete from Detalle where Id = @Id";
    
                SqlCommand cmdIns = new SqlCommand(query, ConexionDB);
                cmdIns.Parameters.Add("@Id", id);
    
                ConexionDB.Open();
                cmdIns.ExecuteNonQuery();
                ConexionDB.Close();

    jueves, 21 de diciembre de 2017 15:27

Todas las respuestas

  • hola rodrigo.

    pon un punto de control en 

    b.Entry(db.Detalle.Find(id)).State = EntityState.Deleted;

    y revisa db.Detalle si existe el id que estas enviando.

    si no existe o es null por eso te saca el error  y no puede eliminarlo

    coloca esa parte de codigo en un try.... catch

    jueves, 21 de diciembre de 2017 14:42
  • aun asi, sigue mostrando el mismo error, y el try.... catch tambien, 
    jueves, 21 de diciembre de 2017 14:57
  • no uses linq, usala de esta manera y seras feliz..

     string query = @"Delete from Detalle where Id = @Id";
    
                SqlCommand cmdIns = new SqlCommand(query, ConexionDB);
                cmdIns.Parameters.Add("@Id", id);
    
                ConexionDB.Open();
                cmdIns.ExecuteNonQuery();
                ConexionDB.Close();

    jueves, 21 de diciembre de 2017 15:27