// ============= custom ============ //
 public static bool existsName(Descripcion desc)
 {
     String sql = String.Format("SELECT * FROM descripcion WHERE nombre = '{0}'", desc.Nombre.Trim());
     DataTable dt = BD.getInstance().sqlSelect(sql);
     if (dt.Rows.Count == 0)
         return false;
     return true;
 }
 public static bool sqlInsert(Descripcion desc)
 {
     if (!existsName(desc)){
         String sql = String.Format("INSERT INTO descripcion(nombre) VALUES ('{0}')"
                                 , desc.Nombre);
         return BD.getInstance().sqlEjecuta(sql);
     }
     return false;
 }
        public static bool sqlLeer(Descripcion desc)
        {
            String sql = String.Format("SELECT * FROM descripcion WHERE iddescripcion = '{0}'"
                                       , desc.Id);
            DataTable dt = BD.getInstance().sqlSelect(sql);
            if (dt.Rows.Count == 0)
                return false;

            desc.Nombre = dt.Rows[0]["nombre"].ToString();
            return true;
        }
    protected void grDatos_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        DataRow row = dt.Rows[int.Parse(e.CommandArgument.ToString())];
        int id = int.Parse(row["iddescripcion"].ToString());

        if (e.CommandName.Equals("btnEditar"))
        {
            Descripcion desc = new Descripcion(id);
            if (DAODescripcion.sqlLeer(desc))
            {
                btnCancelar.Visible = true;
                hdnId.Value = id.ToString();
                hdnAccion.Value = "u";
                btnAgregar.Text = "Editar";
                btnAgregar.CssClass = "btn btn-success";

                txtNombre.Text = desc.Nombre;
            }

        }

        if (e.CommandName.Equals("btnEliminar"))
        {
            if (DAODescripcion.sqlDelete(new Descripcion(id)))
            {
                hdnAccion.Value = "d";
                panelMensajesCorrectos.Visible = true;
                lblMensajes.Text = "Descripcion <b>" + txtNombre.Text + "</b> eliminada con éxito.";
                hdnAccion.Value = "i";
                btnAgregar.Text = "Agregar";
                btnAgregar.CssClass = "btn btn-primary";
            }
            else
            {
                panelMensajesErrores.Visible = true;
                lblErrores.Text = "No se ha podido eliminar la descripcion. Intente de nuevo.";
            }

            cargarGrilla();
        }
    }
 public static bool sqlUpdate(Descripcion desc)
 {
     if (!existsName(desc)){
         String sql = String.Format("UPDATE descripcion SET nombre = '{0}' WHERE iddescripcion = '{1}'"
                                 , desc.Nombre
                                 , desc.Id);
         return BD.getInstance().sqlEjecuta(sql);
     }
     return false;
 }
 public static bool sqlDelete(Descripcion desc)
 {
     String sql = String.Format("DELETE FROM descripcion WHERE iddescripcion = '{0}'"
                             , desc.Id);
     return BD.getInstance().sqlEjecuta(sql);
 }