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 :

MySqlParameter qui s'envole !


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Points : 186
    Points
    186
    Par défaut MySqlParameter qui s'envole !
    Bonjour,

    Je veux faire une requête SQL pour MySql, la requête fonctionne, cependant les paramètres ne sont pas pris en compte, @value reste @value dans la base de données, idem pour l'autre paramètre.

    Je ne sais pas du tout ce que j'ai fais de travers, j'utilisais SQLserver avant et pour faire d'autres test en local j'ai préféré installer MySQL mais sans succès pour les requêtes avec paramètres.

    Voici mon petit bout de code :
    - La connection est correcte,
    - La requête est correcte,
    - Si je fais CommandCreate.Parameters("@dtdefid").Value.ToString il affiche bien ce que je veux.


    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
    17
    18
    19
    20
     
    Using connection As New MySql.Data.MySqlClient.MySqlConnection(sqlConnect)
                    connection.Open()
     
                    Dim CommandCreate As New MySql.Data.MySqlClient.MySqlCommand("insert into cmsDataTypePrevalues (datatypenodeid,value,sortorder,alias) values ('@dtdefid','@value',0,'')", connection)
     
                    Dim Pid As New MySql.Data.MySqlClient.MySqlParameter()
                    Dim Pvalue As New MySql.Data.MySqlClient.MySqlParameter()
                    Pid.ParameterName = "@dtdefid"
                    Pid.DbType = DbType.Int64
                    Pid.Value = _datatype.DataTypeDefinitionId
                    Pvalue.ParameterName = "@value"
                    Pvalue.DbType = DbType.String
                    Pvalue.Value = textWriter.ToString
     
                    CommandCreate.Parameters.Add(Pid)
                    CommandCreate.Parameters.Add(Pvalue)
     
                    CommandCreate.ExecuteNonQuery()
                End Using

    Si vous avez des informations, ce sera avec plaisir.

    Merci d'avance.

    GoT

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Tu es sur que la syntaxe de paramètre de MySql commence bien par @ ? je ne connais pas du tout MySql (et n'ai aucune envie de connaitre) mais le "@" est assez spécifique à Sql Server (les paramètres Oracle par exemple ne commencent pas ainsi).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Points : 186
    Points
    186
    Par défaut
    Bonjour,

    Les @ ne sont pas propres à SQLServer, les paramètres vont prendre en comptes une chaine de caractères, le fait de mettre un @ va juste facilité la distinction dans la requête, à savoir les paramètres.

    Après plusieurs testes, c'est lors du ExecuteNonQuery() que les paramètres disparaissent.

    Ce qui me choque, c'est qu'un collègue à moi a utilisé la même méthode en C# et il n'a rencontré aucun soucis :/

    GoT

Discussions similaires

  1. Animation Flash : une fleur qui s'envole grâcieusement
    Par trucmuche2005 dans le forum Flash
    Réponses: 3
    Dernier message: 24/10/2010, 12h01
  2. des enregistrements qui s'envolent!
    Par sad_snake_istic dans le forum Access
    Réponses: 1
    Dernier message: 03/11/2009, 11h37
  3. [V.7]table qui s'envole bizarement
    Par aallal dans le forum Paradox
    Réponses: 2
    Dernier message: 16/05/2006, 13h48
  4. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08
  5. Recherche programme qui convertit les chiffres arabes en nb
    Par oli57 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 15/06/2002, 03h11

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