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 :

Datagridview : clé primaire [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    developpeur
    Inscrit en
    Décembre 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : developpeur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2011
    Messages : 141
    Par défaut Datagridview : clé primaire
    Bonsoir,

    Lors de ma création de base de donnée dans Access je suis obligé de définir une clé primaire afin de pouvoir ajouter un Datagridview en binding source avec des enregistrements qui fonctionnent entre le fichier Access et le DGV

    J'ai placé cette clé primaire sur ma colonne 'Commentaire' mais il est interdit dans cette colonne d'avoir la même saisie ou bien n'avoir aucune valeur sous peine d'obtenir ces messages :

    Colonne non rempli avec aucune valeur :


    Colonne avec 2 textes identiques :




    Je comprend bien que entre ma DataGridView et Acces il doit y avoir un point de "repère" afin de sauvegarder les données dans les bonnes lignes et colonne...

    Est-il possible d'avoir quand même des textes identiques et/ou des valeur Null sans perturber le lien entre le DGV et Access ou suis-je obligé de saisir un texte différent a chaque ligne ??


    Vous remerciant par avance pour vos conseils,

    Cordialement,

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    une clé primaire doit être une colonne numérique auto incrément non significative
    sinon ca n'a aucun sens ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2012
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Décembre 2012
    Messages : 337
    Par défaut
    Bonsoir,

    Une clé primaire est une référence dans une table de base de données. Elle ne doit ni être nulle ni avoir de doublons, d’ailleurs à la création de la clé, les propriétés du champ deviennent : Autoriser les valeurs nulles sur non et Indexé Oui Sans doublon.

    Pour ne pas se prendre la tête et gérer la valeur de la clé il existe un champ "NuméroAuto" qui incrémente la clé à chaque entrée dans la table.

    Si ce type de comportement ne vous convient pas, il vous faut trouver une solution pour que cette clé ne puisse pas avoir de doublon ni être nulle.

    Exemple : La clé peut être égale à une string composée de l'abréviation de la pièce créée (DEV pour un devis), de la date et de l'heure de création.
    Il y a très peu de chance que l'on créé deux devis à la même heure et à la même date.

    Une solution à votre problème serait d'ajouter un champ "NuméroAuto" à votre table, d'ajouter une colonne à votre DataGridView et de la masquer. Dans tout les cas, si c'est un champ auto incrémenté, l'utilisateur ne doit pas pouvoir modifier la valeur au risque de compromettre l'intégrité de la base de données.

  4. #4
    Membre très actif
    Homme Profil pro
    developpeur
    Inscrit en
    Décembre 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : developpeur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2011
    Messages : 141
    Par défaut
    Merci pour toute ces précisions c'est bien ce qu'il me semblait...

    Effectivement la solution serai d'auto-incrémenter une colonne caché dans le DGV qui serait la clé primaire dans Access.

    Merci

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    Citation Envoyé par Rainui Voir le message
    Exemple : La clé peut être égale à une string composée de l'abréviation de la pièce créée (DEV pour un devis), de la date et de l'heure de création.
    Il y a très peu de chance que l'on créé deux devis à la même heure et à la même date.
    sur le papier peut etre, mais en pratique c'est une très mauvaise idée
    une clé primaire est généralement indexée, donc le string c'est à éviter
    composer le string avec des infos est inutile, les infos sont déjà dans les autres colonnes

    quant au "très peu de chance", déjà quand on est sur que ca va bien se passer il arrive qu'il y ait quelque chose qui cloche, alors si on accepte qu'il y ait une chance que ca se passe mal c'est à éviter
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. datagridview clé primaire
    Par oami89 dans le forum VB.NET
    Réponses: 1
    Dernier message: 27/07/2011, 08h25
  2. Import data d'Excel ds 2 table lié par clé primaire
    Par lord_paco dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 10/05/2005, 09h31
  3. clé primaire aléatoire
    Par peuh dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 23/06/2003, 20h51
  4. Procédure stocké:Insert et renvoie de la clé primair
    Par caramel dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/04/2003, 09h34
  5. Problème pour récupérer la clé primaire
    Par caramel dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/04/2003, 13h57

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