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 :

Problème foreign Key


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Avril 2005
    Messages : 36
    Par défaut Problème foreign Key
    Bonjour le forum,

    J'ai actuellement un problème pour modifier une clé étrangère.
    En effet, la clé étrangère était utilisée, je ne peux pas faire de modifications sur la clé primaire dans ma table1, puisqu'elle est utilisée en étrangère dans al table2, et je ne peux modifier la clé étrangère dans la table2, puisqu'elle n'existerais alors plus dans la table1.

    exemple :
    table1
    Code
    Intitulé

    table2
    ID
    #Code

    Pour autant que je me souvienne, le seul moyen de faire cette modification est l'utilisation d'une transaction, puisque, selon mes souvenirs, les contraintes d'intégrités ne sont vérifiées que lors du commit.
    J'ai donc réalisé le code suivant :
    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
    Using cn2 As OleDbConnection = New OleDbConnection(My.MySettings.Default.ConnectionString)
    cn2.Open()
        Using Transaction As OleDbTransaction = cn2.BeginTransaction()
             Using Cmd2 As OleDbCommand = cn2.CreateCommand()
                 Cmd2.Transaction = Transaction
                 Cmd2.CommandText = "UPDATE table2 set code=? where code=?"
                 Cmd2.Parameters.Add(paramCode)
                 Cmd2.Parameters.Add(paramCode2)
                 Cmd2.ExecuteNonQuery()
                 Cmd2.CommandText = "UPDATE table1 set code=? where code=?"
                 Cmd2.ExecuteNonQuery()
                 Transaction.Commit()
             End Using
         End Using
    cn2.Close()
    End Using
    Cependant j'ai lors du premier ExecuteNonQuery, une erreur de clé étrangère.
    Est-ce que je me rappel mal ? si oui, avez-vous une autre méthode pour faire ce changement ? Autrement est-ce une option à faire passer à la transaction...

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    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 197
    Par défaut
    quand tu fais une relation, tu peux spécifier de faire les update en cascade
    c'est à dire que dès que quelqu'un vient modifier la clé primaire qui est référencé en foreign key dans une autre table, ca met à jour automatiquement dans l'autre table
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Avril 2005
    Messages : 36
    Par défaut
    J'avais effectivement pensé à cette solution, cependant je ne suis hélas pas dba sur la base, et ne suis donc pas maitre des décisions prises à ce niveau
    Existe-t-il une autre solution ?

Discussions similaires

  1. [MySQL-5.1] error code: 1005.problème foreign key
    Par janyoura dans le forum Requêtes
    Réponses: 1
    Dernier message: 09/07/2013, 19h29
  2. [phpMyAdmin] Problème Foreign Key
    Par Endori dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 07/06/2011, 19h44
  3. Problème foreign key avec hibernate
    Par souhait dans le forum Hibernate
    Réponses: 5
    Dernier message: 05/09/2008, 15h23
  4. Problème Foreign Key : "ErrCode:150"
    Par seangg dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 19/08/2008, 15h53
  5. [REFERENCES/FOREIGN KEY]problème d'unicité de clé
    Par Guigui_ dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 18/01/2005, 16h47

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