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 :

ADO- Impossible de mettre à jour une table sans primary key.


Sujet :

Accès aux données

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 24
    Points : 19
    Points
    19
    Par défaut ADO- Impossible de mettre à jour une table sans primary key.
    Hello

    Je rempli une datatable à partir d une table sans primary key.
    Je rajoute un nouveau record dans la datatable puis j effectue un update.

    j'obtient l'erreur suivante:

    dynamic SQl generation for the UpdateCommand is not supported against a selectCommand that does not return any key column nformation

    Une idée?
    Karim

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Comment est défini le DataAdapter ?


    dynamic SQl generation for the UpdateCommand ...
    Cette ligne laisse à penser que l'UpdateCommand du DataAdapter n'est pas définie (mais je ne travaille pas avec des bases SQL donc je ne connais pas trop...)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 64
    Points : 69
    Points
    69
    Par défaut
    D'après mes souvenirs, on est obligé d'avoir la primary key pour un update. d'ou il faut la ramener pendant le select.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    On peut indiquer manuellement l'UpdateCommand dans le SqlDataAdapter utilisé. Le générateur automatique a forcément du mal à s'y retrouver s'il n'y a pas de clef primaire dans la table. Comment il peut être sûr que la ligne qu'il va mettre à jour est la bonne vu qu'il n'y a rien qui empêche d'avoir plusieurs lignes strictement identiques ?

    Donc soit UpdateCommand manuel, soit correction de la table pour lui ajouter une clef primaire. En fouettant au passage celui qui a eu l'idée de ne pas en mettre.

    (pour l'utilisation d'UpdateCommand, voir l'exemple dans MSDN)

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/01/2008, 09h24
  2. Prb mettre à jour une table via un fichier excel
    Par antier dans le forum Access
    Réponses: 3
    Dernier message: 02/12/2005, 10h31
  3. Comment mettre à jour une ligne sans doublon via déclencheur
    Par fuelcontact dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/08/2004, 15h56
  4. Mettre à jour une table depuis une autre
    Par rsc dans le forum SQL
    Réponses: 4
    Dernier message: 09/07/2004, 10h08

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