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

Accès aux données Discussion :

[C#/MS ACCESS] foreign key constraint


Sujet :

Accès aux données

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 258
    Points
    258
    Par défaut [C#/MS ACCESS] foreign key constraint
    Bonjour tout le monde,

    voilà mon problème :
    j'ai 2 tables dans une base access,
    pays (paysId (autoincrement,clé primaire), et paysNom (texte))
    arbitre (arbNom (texte, clé primaire), arbPays(entier long))

    j'ai relié c'est deux tables (toujours dans access) et j'ai acrivé la contrainte d'intégrité (juste la contrainte pas les cascades)

    j'ai mis quelques données dans les deux tables... pas de souci, la contrainte d'intégrité est bien gérée.

    Dans visual 2005, j'ai utilisé le concepteur de dataset pour récupérer tout ça, et là encore pas de problème, la relation est bien créée, mais uniquement la relation.
    J'ai créé 2 datagridview, une pour chacune des tables (sans aucune gestion de table maître esclave ou quoi que ce soit, juste les deux tables)
    toujours pas de soucis, les données s'affichent sans problème.

    Tout se gâte lorsque j'essaye d'activer, la relation et la contrainte de clé étrangère, quand j'essaye de lancer l'appli j'ai une message qui apparaît à l'écran.
    ...One or more rows contain values violating non-null, unique, or foreign-key constraints...
    Quand je remet relation seule, ça remarche.

    Quelqu'un aurait une idée à ce propos ? Merci d'avance.

  2. #2
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    as tu bloqué le EnforceConstraint avant le remplissage ?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 258
    Points
    258
    Par défaut
    oui, la propriété EnforceConstraint de mon dataset est à true.
    Si je le passe à false, j'arrive à exécuter mon prog.
    Et quand j'essaye de mettre des données incohérentes c'est bien géré.
    Un arbitre avec un pays qui n'existe pas => erreur
    supprimer un pays utilisé par un arbitre => erreur

    Donc génial ! merci beaucoup

    Mais tout de même c'est étrange, à quoi sert finalement, cette propriété EnforceConstraint ??

    ci dessous l'endroit exact où ça plantait, au moment du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int returnValue = this.Adapter.Fill(dataTable);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [System.Diagnostics.DebuggerNonUserCodeAttribute()]
            [System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")]
            [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Fill, true)]
            public virtual int Fill(StatFootDataSet.ArbitreDataTable dataTable) {
                this.Adapter.SelectCommand = this.CommandCollection[0];
                if ((this.ClearBeforeFill == true)) {
                    dataTable.Clear();
                }
                int returnValue = this.Adapter.Fill(dataTable);
                return returnValue;
            }

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

Discussions similaires

  1. Foreign key constraint fails
    Par psgman113 dans le forum JPA
    Réponses: 2
    Dernier message: 13/03/2009, 12h37
  2. Réponses: 0
    Dernier message: 12/12/2007, 21h10
  3. Réponses: 2
    Dernier message: 09/08/2007, 12h38
  4. Message d'erreur 'violation of FOREIGN KEY constraint' de Interbase
    Par abdelghani_k dans le forum Bases de données
    Réponses: 3
    Dernier message: 03/06/2007, 09h11
  5. [clés étrangères] a foreign key constraint fails
    Par guidav dans le forum Débuter
    Réponses: 15
    Dernier message: 09/08/2006, 23h50

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