public static bool sqlDelete(Categoria cat)
 {
     String sql = String.Format("DELETE FROM categorias WHERE idcategorias = '{0}'"
                             , cat.Id
                             );
     return BD.getInstance().sqlEjecuta(sql);
 }
 // ============= custom ============ //
 public static bool existsName(Categoria cat)
 {
     String sql = String.Format("SELECT * FROM categorias WHERE nombre = '{0}'", cat.Nombre);
     DataTable dt = BD.getInstance().sqlSelect(sql);
     if (dt.Rows.Count == 0)
         return false;
     return true;
 }
        public static bool sqlLeer(Categoria cat)
        {
            String sql = String.Format("SELECT * FROM categorias WHERE idcategorias = '{0}'"
                                       , cat.Id);
            DataTable dt = BD.getInstance().sqlSelect(sql);
            if (dt.Rows.Count == 0)
                return false;

            cat.Nombre = dt.Rows[0]["nombre"].ToString();
            return true;
        }
 // No podemos tener dos categorias con el mismo nombre
 // Así que comprobamos el INSERT y el UPDATE para que esto no suceda.
 public static Boolean sqlInsert(Categoria cat)
 {
     if (!existsName(cat))
     {
         String sql = String.Format("INSERT INTO categorias (nombre) VALUES ('{0}')"
                                 , cat.Nombre
                                 );
         return BD.getInstance().sqlEjecuta(sql);
     }
     return false;
 }
 public static bool sqlUpdate(Categoria cat)
 {
     if (!existsName(cat))
     {
         String sql = String.Format("UPDATE categorias SET nombre = '{0}' WHERE idcategorias = '{1}'"
                                 , cat.Nombre
                                 , cat.Id
                                 );
         return BD.getInstance().sqlEjecuta(sql);
     }
     return false;
 }