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

Windows Forms Discussion :

[VB.NET] [ODBC] Pb requête UPDATE avec clé primaire..?


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2005
    Messages : 139
    Points : 74
    Points
    74
    Par défaut [VB.NET] [ODBC] Pb requête UPDATE avec clé primaire..?
    Salut

    J'ai cette requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Me.UpdateCommandF4801.CommandText = "Update LIBTDTA.F4801 set WADOCO = ? where WADOCO = ?"
     
    Me.UpdateCommandF4801.Parameters.Add("@WADOCO", OdbcType.Numeric)
    Me.UpdateCommandF4801.Parameters("@WADOCO").Value = enregistrements(5)
     
    Me.UpdateCommandF4801.Parameters.Add("@WADOCO", OdbcType.Numeric)
    Me.UpdateCommandF4801.Parameters("@WADOCO").Value = enregistrements(5)
    Je dois absolument updater ce champ mais il est en meme temps la clé primaire...

    lorsque je fais l'update..jai l'erreur suivante :

    Parametre 2 : Invalid use of default parameter
    quelqu'un peut m'aider?

    merci!

  2. #2
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Salut,
    Est-ce que la valeur que tu mets à la place de l'ancienne n'est pas utilisé par un autre tuple? Parce que si c'est le cas et que ce champ est la clé primaire, c'est normal que ça gueule
    Ou alors c'est peut-être du au fait que tu ais mis ta clé primaire en auto-increment (si tu la mise en auto-increment bien sur).

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2005
    Messages : 139
    Points : 74
    Points
    74
    Par défaut
    Merci d'avoir répondu!

    Ce parametre je le prend, je le modifie et ensuite je fais une mise a jour de la table avec le nouveau numéro.

    Le champ WADOCO contient le nouveau numéro...mais quand j'arrive à ma clé primaire...je fais quoi...ma clé dans lfond je ne suis pas obligé de l'updater elle aussi...mais je vais faire quoi...je doit absolument avoir un WHERE dans ma requete UPDATE...

    merci!

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 31
    Points : 37
    Points
    37
    Par défaut
    Je ne connais rien à VB.Net mais il me semble que c'est une mauvaise utilisation des paramètres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Me.UpdateCommandF4801.CommandText = "Update LIBTDTA.F4801 set WADOCO = ? where WADOCO = ?" 
     
    Me.UpdateCommandF4801.Parameters.Add("@WADOCO", OdbcType.Numeric) 
    Me.UpdateCommandF4801.Parameters("@WADOCO").Value = enregistrements(5)
    Ca devrait suffir, pas besoin de rajouter le même params.

    Par contre, j'essaierai plutot ceci, au moins je suis sur que ca marchera.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Me.UpdateCommandF4801.CommandText = "Update LIBTDTA.F4801 set WADOCO = @WADOCO where WADOCO = @WADOCO" 
     
    Me.UpdateCommandF4801.Parameters.Add("@WADOCO", OdbcType.Numeric) 
    Me.UpdateCommandF4801.Parameters("@WADOCO").Value = enregistrements(5)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2005
    Messages : 139
    Points : 74
    Points
    74
    Par défaut
    Salut

    J'ai essayer ta première facon de faire mais une erreur me dit : "Wrong number of paramters"

    La deuxième facon ne fonctionne pas car ma connection ODBC ne reconnait pas les "@", c'est les "?" qu'elle reconnait...
    Pour sql server je sais que cest les "@" et je sais que cela fonctionne...

    donc la je ne sais plus trop koi faire!

    qu'est ce que vous en pensez?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 31
    Points : 37
    Points
    37
    Par défaut
    Ne désespère pas

    Il ya encore une solution!

    Me.UpdateCommandF4801.CommandText = "Update LIBTDTA.F4801 set WADOCO = '" + enregistrement(5).ToString() + " where WADOCO = " + enregistrement(5).ToString()

  7. #7
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    à mon avis si tu veux pas te faire chier tu devrais utiliser des procédures stockées : c'est bien plus rapide, plus performant(elles sont exécutées côté serveur et sont précompilées), plus de problème de conversion de float en string ou quoi que se soit, c'est vraiment très pratique et ça résoudrait ton problème je pense.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2005
    Messages : 139
    Points : 74
    Points
    74
    Par défaut
    Merci à tous

    J'ai décidé de m'y prendre autrement...

    merci encore pour vos nombreux conseils qui m'ont aidé grandement!!

    A la prochaine!

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

Discussions similaires

  1. Requête update avec un select
    Par housni dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 11/08/2007, 00h22
  2. Requête UPDATE avec jointure
    Par petburn dans le forum SQL
    Réponses: 7
    Dernier message: 30/07/2007, 14h22
  3. Réponses: 5
    Dernier message: 10/07/2006, 12h05
  4. Requête UPDATE avec variables...
    Par yokyok dans le forum Outils
    Réponses: 2
    Dernier message: 18/05/2006, 10h37
  5. [VB.NET] [ODBC] Récupérer des valeurs avec requête ODBC?
    Par Pleymo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/03/2005, 16h38

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