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 :

DEBUG - Detail des requetes dans un DataAdapter


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Par défaut DEBUG - Detail des requetes dans un DataAdapter
    Bonjour, j'ai une erreur lorsque passe sur cette ligne de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlDataAdapter.Update(dataSetChanged, "Clients");
    ce qui est etonnant c'est que si je fais la meme chose avec ACCESS, ca passe comme une lettre a la poste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OleDbDataAdapter dataAdapter ; dataAdapter.Update(dataSetChanged, "Clients");
    Le message d'erreur est le suivant:
    The variable name '@NumFacture' (qui est ma clef primaire) has already been declared. Variable names must be unique within a query batch or stored procedure.
    N'y a t'il pas un moyen lorsque on est mode debug et que je pose un point d'arret d'avoir la requete exacte (la valeur des champs et non @MonChamps) si je regarde le detail de mon dataAdapter?
    Merci de votre aide (precieuse !)

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Avec OleDb, les noms de paramètre ne sont pas pris en compte. Donc si tu as 2 fois le même paramètre dans une requête, du point de vue du provider c'est 2 paramètres différents, donc il faut l'ajouter 2 fois à la collection Parameters.

    Alors qu'avec Sql Server, les noms de paramètres sont uniques : si tu as 2 fois le même paramètre, tu ne l'ajoutes qu'une fois.

    Je pense que l'erreur est à ce niveau là...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Par défaut
    oui je viens de voir que mon champs ete en double!
    Par contre n'y a t'il pas moyen de voir la requete envoyé?
    l'idée et de pouvoir l'executer directement dans SQL Server
    Je me retrouve avec une nouvelle erreur du type :

    Error converting data type varchar to numeric.
    et je ne vois pas d'ou cela vient..... :
    merci de ton aide

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par skunkies Voir le message
    Par contre n'y a t'il pas moyen de voir la requete envoyé?
    Les propriétés UpdateCommand/InsertCommand/DeleteCommand
    Par contre si tu utilises un CommandBuilder, ces propriétés sont nulles. Pour récupérer la commande, il faut gérer l'évènement RowUpdated du DataAdapter ; la commande est dans les paramètres de l'évènement

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Par défaut
    Que veux tu dire par :
    Pour récupérer la commande, il faut gérer l'évènement RowUpdated du DataAdapter ; la commande est dans les paramètres de l'évènement
    lorsque je met un point d'arret sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlDataAdapter.Update(dataSetChanged, "Clients");
    et que j'expand les propriétes de "sqlDataAdapter" je vois bien
    InsertCommand
    DeletCommand
    SelectCommand
    mais je vois la requête tel que l'ai écrite dans la fonction InitializeCommands().
    Ce que j'aimerais c'est de voir cette meme requete mais avec les vrais valeurs.
    Ex dans InitializeCommands() j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      // Reuse the SelectCommand's Connection.
                    SqlConnection sqlconnection = (SqlConnection)sqlDataAdapter.SelectCommand.Connection;
     
                    // Create an explicit, reusable insert command
                    sqlDataAdapter.InsertCommand = sqlconnection.CreateCommand();
                    sqlDataAdapter.InsertCommand.CommandText = "Insert into tblClients " +
                        "(Raison_Social, Nom_Signataire, Adresse, CP,Ville, Tel, Fax, Mail, Departement , Commentaires,Date) " +
                        "values" +
                        "( @Raison_Social, @Nom_Signataire, @Adresse, @CP,@Ville, @Tel, @Fax, @Mail, @Departement, @Commentaires, @Date)";
     
                    AddParmsSQL(sqlDataAdapter.InsertCommand, "Raison_Social", "Nom_Signataire", "Adresse", "CP", "Ville", "Tel", "Fax", "Mail", "Departement", "Commentaires", "Date");
    ce que j'aimerai c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Insert into tblClients (Raison_Social, Nom_Signataire, Adresse, CP,Ville, Tel, Fax, Mail, Departement , Commentaires,Date) values( "AAA", "BBB", "AAA", "43 543","PARIS", "01 23 34 23 34", "01 23 34 23 34", "aa@zzz.de", "43", "Commentaires", "07/01/2009")
    Suis je clair ou pas

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par skunkies Voir le message
    ce que j'aimerai c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Insert into tblClients (Raison_Social, Nom_Signataire, Adresse, CP,Ville, Tel, Fax, Mail, Departement , Commentaires,Date) values( "AAA", "BBB", "AAA", "43 543","PARIS", "01 23 34 23 34", "01 23 34 23 34", "aa@zzz.de", "43", "Commentaires", "07/01/2009")
    Tu verras jamais ça, parce que la requête n'existe jamais sous cette forme. La requête et les paramètres sont transmis séparément au SGBD

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

Discussions similaires

  1. Implementer des requetes dans des boutons
    Par rabada dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 26/05/2011, 01h10
  2. Mise à jour des requetes dans les feuilles
    Par tribaleur dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/07/2008, 08h42
  3. execution des requetes dans les mapping file hbm.xml
    Par makohsarah dans le forum Hibernate
    Réponses: 3
    Dernier message: 04/06/2008, 18h06
  4. chercher des données dans sa propre requete...
    Par shadowbob dans le forum Requêtes
    Réponses: 4
    Dernier message: 27/06/2004, 17h13
  5. Réponses: 5
    Dernier message: 08/03/2004, 10h28

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