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

C# Discussion :

Comment créer une contrainte de clé primaire sur plusieurs champs d'une DataTable ?


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 9
    Points : 8
    Points
    8
    Par défaut Comment créer une contrainte de clé primaire sur plusieurs champs d'une DataTable ?
    Bonjours, J'explique un peu plus en détail mon problème..

    J'ai suivis le tutoriel Ado.net qui se trouve sur le site, le rédacteur explique comment créer une contrainte (clef primaire) a partir d'une colonne.

    Le problème est que dans mon cas la clef primaire se trouve sur 3colonnes, j'ai beau chercher je ne trouve pas de solutions a mon problème.

    La table : COURS
    Champs :
    ID_SALLE
    ID_JOUR (clef primaire)
    ID_CLASSE (clef primaire)
    ID_PROF ID_MATIERE
    ID_PAU
    HEURE_DEBUT (clef primaire)
    HEURE_FIN


    Jusqu'à présent pour créer la clef primaire j'utilisais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oDataSet.Tables["CLASSE"].Constraints.Add("pk1", oDataSet.Tables["CLASSE"].Columns[0], true);
    J'ai donc essayé en déclarant mes 3colonnes a la suite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    oDataSet.Tables["COURS"].Constraints.Add("pk1", oDataSet.Tables["COURS"].Columns[0], true);
    oDataSet.Tables["COURS"].Constraints.Add("pk2", oDataSet.Tables["COURS"].Columns[1], true);
    oDataSet.Tables["COURS"].Constraints.Add("pk3", oDataSet.Tables["COURS"].Columns[2], true);
    Mais évidemment cela me répond que les colonnes ne respectent les contraintes de clef primaire (unique). En effet, les valeurs des colonnes jours, classe et heuredebut prise une a une ne seront jamais unique, c'est les 3 qui le seront... Donc si quelqu'un a eu une solution ?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 58
    Points : 61
    Points
    61
    Par défaut
    Bonjour;

    Essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    DataColumn [] m_Columns = new DataColumn[3] 
    {
        oDataSet.Tables["COURS"].Columns[0],
        oDataSet.Tables["COURS"].Columns[1],
        oDataSet.Tables["COURS"].Columns[2]
    }
     
    oDataSet.Tables["COURS"].Constraints.Add("pk1", m_Columns , true);
    @+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 10
    Points
    10
    Par défaut
    Merci Infosteph, j'avais exactement le même problème et ne trouvait pas de réponse valable.

    La tienne semble marcher parfaitement donc merci beaucoup et sujet a marquer "Résolu".

Discussions similaires

  1. [AC-2003] Créer une contrainte d'unicité basé sur deux champs(hors clé primaire)
    Par adelcrb dans le forum Modélisation
    Réponses: 1
    Dernier message: 31/08/2013, 21h06
  2. trigger sur plusieurs champs d'une table
    Par PxPar dans le forum PL/SQL
    Réponses: 1
    Dernier message: 27/08/2009, 15h31
  3. [MPD] Clé primaire sur plusieurs champs
    Par vimanas dans le forum Schéma
    Réponses: 21
    Dernier message: 24/09/2008, 19h43
  4. Réponses: 5
    Dernier message: 17/07/2008, 11h40
  5. [HTML] mettre un DIV sur plusieurs champs d'une table
    Par Nixar dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 07/09/2007, 15h13

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