IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Afficher une cellule vide dans un DATAGRIDVIEW lié à un DATASET au lieu de 0 [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2017
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 140
    Par défaut Afficher une cellule vide dans un DATAGRIDVIEW lié à un DATASET au lieu de 0
    Bonjour à tous,
    J'ai développé une appli en VB.NET 2010 où j'utilise des DATAGRIDVIEW liés à des DATASET eux mêmes liés à une BDD SQL server 2008 R2.
    Parfois le contenu des cellules numériques est 0 et je souhaiterais ne rien afficher dans la cellule plutôt que 0
    Voilà un exemple de ce que j'obtiens :
    Nom : Avant.jpg
Affichages : 878
Taille : 739,6 Ko

    Et voilà ce que je souhaiterais obtenir (donc sans l'affichage des 0)
    Nom : Après.jpg
Affichages : 850
Taille : 730,9 Ko

    J'ai obtenu le second affichage sans lier la source du DATAGRIDVIEW au DATASET et en remplissant ligne par ligne en faisant un test sur les 0. Mais c'est fastidieux et peut-être existe-t-il une solution lorsque la source du DATAGRIDVIEW est un DATASET
    Merci d'avance pour vos réponses

  2. #2
    Invité
    Invité(e)
    Par défaut
    bonjour,
    il ce trouve que les champs de ta table sont numérique avec une valeur par défaut zéro!

    modifies la valeur par défaut de ta table = null!

    fais le ménage par requête de Update pour replacer le valeur zéro par null et le tour est joué!

    en revanche quand tu ajoute ou modifie les valeurs dans ta table vérifies les valeurs à zéro pour mettre null à la place!

  3. #3
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2017
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 140
    Par défaut
    Bonjour et merci pour ta réponse,

    "fais le ménage par requête de Update pour replacer le valeur zéro par null et le tour est joué!"

    C'est quoi la syntaxe pour la requête de Update ?

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    il ce trouve que les champs de ta table sont numérique avec une valeur par défaut zéro!
    modifies la valeur par défaut de ta table = null!
    Pour ma part je suis contre ce procédé... Le problème souligné ici ne concerne que l'affichage. C'est donc au Datagridview de gérer ce problème. On ne sait pas qui alimente et/ou manipule la base de donnée en plus de son application. Peut-être que le 0 à une signification.

  5. #5
    Invité
    Invité(e)
    Par défaut
    dans Sql Manageur, car ça ne présente pas d'intérêt dans le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update MyTable set ChampsName=Null where ChampsName=0

  6. #6
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2017
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 140
    Par défaut
    Merci !

  7. #7
    Invité
    Invité(e)
    Par défaut
    bonjour,

    le Datagridview fait parti du client! ce n'est pas à lui de gérer ça il se constante d'afficher ! c'est au métier qu'il appartient de faire les vérifications qui s'impose. insert update des valeur à zéro = null!

    Il est fort à parier, mais seule notre ami peut le.savoir, que la valeur de champs.par.défaut est zéro!

    Citation Envoyé par dysorthographie Voir le message
    bonjour,
    il ce trouve que les champs de ta table sont numérique avec une valeur par défaut zéro!

    modifies la valeur par défaut de ta table = null!

    fais le ménage par requête de Update pour replacer le valeur zéro par null et le tour est joué!

    en revanche quand tu ajoute ou modifie les valeurs dans ta table vérifies les valeurs à zéro pour mettre null à la place
    !
    si d'aventure les données sont modifiées par une autre application, il appartiendra de toutes les façons au métier et/ou la couche base de données d'opérer les aménagement qui s'imposent (trois tiers {Client,Métier,Base de données})!
    Dernière modification par Invité ; 03/10/2017 à 11h39.

  8. #8
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    bonjour,

    le Datagridview fait parti du client! ce n'est pas à lui de gérer ça il se constante d'afficher ! c'est au métier qu'il appartient de faire les vérifications qui s'impose. insert update des valeur à zéro = null!
    Justement, si son job c'est de gérer l'affichage, c'est lui qui fournit le format (exemple : je ne veux pas afficher les valeurs 0, alors je met un blanc). Par contre, je suis d'accord avec toi sur le fait que le métier s'occupe de la vérification de la valeur => 0 si la valeur est 0, null si il n'y a pas de valeur.

  9. #9
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2017
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 140
    Par défaut
    Citation Envoyé par ZenZiTone Voir le message
    je ne veux pas afficher les valeurs 0, alors je met un blanc
    C'est exactement ça !
    En l'occurence ce DATAGRIDVIEW n'est utilisé que pour l'affichage et en aucun cas ne permet de modifier les données.
    As-tu une solution pour mettre "un blanc" à la place du 0 alors même que la source est 0 ?

  10. #10
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour

    Pour le dgv il me semble que l'event dataGridView_CellFormatting(DataGridViewCellFormattingEventArgs formatting)
    est fait pour resoudre ce genre de probleme de mise en forme :3
    - selection de colonne.
    -mise en forme de e.Value y compris substitution du contenu de e.Value suivant son contenu

    exemple de la MSDN Help lib:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
        // If the column is the Artist column, check the
        // value.
        if (this.dataGridView1.Columns[e.ColumnIndex].Name == "Artist")
        {
            if (e.Value != null)
            {
                // Check for the string "pink" in the cell.
                string stringValue = (string)e.Value;
                stringValue = stringValue.ToLower();
                if ((stringValue.IndexOf("pink") > -1))
                {
                    e.CellStyle.BackColor = Color.Pink;
                }
     
            }
        }
        else if (this.dataGridView1.Columns[e.ColumnIndex].Name == "Release Date")
        {
            ShortFormDateFormat(e);
        }
    }
     
    //Even though the date internaly stores the year as YYYY, using formatting, the
    //UI can have the format in YY.  
    private static void ShortFormDateFormat(DataGridViewCellFormattingEventArgs formatting)
    {
        if (formatting.Value != null)
        {
            try
            {
                System.Text.StringBuilder dateString = new System.Text.StringBuilder();
                DateTime theDate = DateTime.Parse(formatting.Value.ToString());
     
                dateString.Append(theDate.Month);
                dateString.Append("/");
                dateString.Append(theDate.Day);
                dateString.Append("/");
                dateString.Append(theDate.Year.ToString().Substring(2));
                formatting.Value = dateString.ToString();
                formatting.FormattingApplied = true;
            }
            catch (FormatException)
            {
                // Set to false in case there are other handlers interested trying to
                // format this DataGridViewCellFormattingEventArgs instance.
                formatting.FormattingApplied = false;
            }
        }
    }
    bon code...

  11. #11
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2017
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 140
    Par défaut
    Merci MABROUKI

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. afficher une date vide dans un état de sortie
    Par kroma23 dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/11/2012, 18h26
  2. [XL-2000] Détection d'une cellule vide dans une ligne.
    Par babou41287 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/04/2012, 15h40
  3. [XL-2010] Sélection d'une cellule vide dans un fichier "ouvert" avec GetOpenFilename
    Par mauriceguillier dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/12/2010, 14h40
  4. Réponses: 2
    Dernier message: 29/11/2010, 15h01
  5. suppression cellule vide dans une plage ?
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/10/2007, 15h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo