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 + Mysql + Commande Parameters


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut VB NET + Mysql + Commande Parameters
    Salut, j'essaie de faire une commande paramétrée.
    Mais cela me donne une erreur et je vois pas d'ou cela viens.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                COMMAND.CommandText = "select id,name from product where name = @producto and id = @id"
                COMMAND.Parameters.Add(New MySqlParameter("@id", MySqlDbType.Int16, 11))
                COMMAND.Parameters.Add(New MySqlParameter("@producto", MySqlDbType.VarChar, 255))
                COMMAND.Parameters("@id").Value = TextBox1.Text
                COMMAND.Parameters("@producto").Value = TextBox2.Text
                COMMAND.ExecuteNonQuery()
    id est au format Int, 11 dans la db, et
    producto est au format varchar, 255

    l'erreur est :

    Une exception non gérée du type 'System.FormatException' s'est produite dans mscorlib.dll

    Informations supplémentaires : Le format de la chaîne d'entrée est incorrect.

    sur COMMAND.ExecuteNonQuery()

    Merci de votre aide.

  2. #2
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Points : 10 543
    Points
    10 543
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Je pense que le soucis vient du paramètre ID, qu'il faudrait plutôt écrire comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COMMAND.Parameters.Add(New MySqlParameter("@id", MySqlDbType.Int32, 11))
    Ca fait très longtemps que je n'ai pas fait de MySQL, mais dans mes souvenirs, un INT(x) est toujours stockée sur 4 octets, qu'importe x. Le x n'influence que la représentation lors de l'affichage, pas le stockage.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut
    Malheuresement ce n'est pas sa. J'avais deja essayer avec int32,int16 et idem.....

    Par contre sous ce code pas de pbl.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                COMMAND.CommandText = "select id,name from product where name = @producto and id = @id"
                COMMAND.Parameters.AddWithValue("@id", TextBox1.Text)
                COMMAND.Parameters.AddWithValue("@producto", TextBox2.Text)
    Donc je me demande ce qu'il se passe car dans les exemples pour SQLparameter c'est comme avant.
    Alors est-ce que pour MysqlParameter c'est different ??? Je voudrais vraiment essayer avec MySqlDbType.

  4. #4
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Points : 10 543
    Points
    10 543
    Billets dans le blog
    21
    Par défaut
    Et en essayant COMMAND.Parameters.Add(New MySqlParameter("@id", MySqlDbType.Int32)) (suppression du paramètre taille) ?
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut
    Citation Envoyé par François DORIN Voir le message
    Et en essayant COMMAND.Parameters.Add(New MySqlParameter("@id", MySqlDbType.Int32)) (suppression du paramètre taille) ?
    PAreil avec......

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                COMMAND.CommandText = "select id,name from product where name = @producto and id = @id"
                COMMAND.Parameters.Add(New MySqlParameter("@id", MySqlDbType.Int32))
                COMMAND.Parameters.Add(New MySqlParameter("@producto", MySqlDbType.VarChar))
                COMMAND.Parameters("@id").Value = TextBox1.Text
                COMMAND.Parameters("@producto").Value = TextBox2.Text
                COMMAND.ExecuteNonQuery()
    Erreur :

    Une exception non gérée du type 'System.FormatException' s'est produite dans mscorlib.dll

    Informations supplémentaires : Le format de la chaîne d'entrée est incorrect.

  6. #6
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Points : 10 543
    Points
    10 543
    Billets dans le blog
    21
    Par défaut
    Je viens de penser à un truc, c'est peut-être tout simplement la valeur qui n'est pas bonne ou son type : tu déclares le paramètre @id comme étant un entier, mais tu lui passes une chaîne de caractères.

    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     COMMAND.Parameters.AddWithValue("@id", int.Parse(TextBox1.Text))
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut
    Bizarre j'ai essayer mais j'ai une erreur sur int.

    J'ai essayer cela aussi mais marche pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                COMMAND.Parameters.Add("@id", MySqlDbType.Int32).Value = TextBox1.Text
                COMMAND.Parameters.Add("@producto", MySqlDbType.VarChar).Value = TextBox2.Text
    Je vais faire un test a part et je reviens si je trouve la soluce.

  8. #8
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Points : 10 543
    Points
    10 543
    Billets dans le blog
    21
    Par défaut
    Je crois que je vais arrêter de répondre à des questions en VB, je n'arrête pas de me planter dans les syntaxes
    int.Parse c'est en c#. L'équivalent en VB c'est Integer.Parse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     COMMAND.Parameters.AddWithValue("@id", Integer.Parse(TextBox1.Text))
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut
    Je me pose quand meme une question.....
    La difference entre
    Parameters.AddWithValue et Parameters.Add

    Car le premier j'ai pas besoin de mettre la valeur MySqlDbType et l'autre oui...
    Est ce que l'on peut rajouter dans Parameters.AddWithValue le MySqlDbType ?

    Par exemple pour ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COMMAND.Parameters.AddWithValue("@name", If(String.IsNullOrEmpty(TextBox2.Text), DBNull.Value, TextBox2.Text))
    Car j'en utilise pas mal


    Une explication serait bienvenue......

Discussions similaires

  1. se connecter avec le module Net::MySQL
    Par vbcasimir dans le forum SGBD
    Réponses: 5
    Dernier message: 27/07/2006, 18h39
  2. [VB.NET][Excel]Commandes de controles
    Par Yanos dans le forum Windows Forms
    Réponses: 6
    Dernier message: 12/04/2006, 14h45
  3. [VB.NET][MySQL]ID insertion dans une base MySQL par ODBC
    Par leSeb dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/03/2006, 10h58
  4. [windowsXP][vs studio 2003][vb.net][mysql] odbcdatareader
    Par errahimi dans le forum Accès aux données
    Réponses: 2
    Dernier message: 11/11/2005, 11h53
  5. [VB.NET] [MySQL Connector Net 1.0.4] Pb de MySqlConnection
    Par toxine dans le forum Windows Forms
    Réponses: 9
    Dernier message: 22/03/2005, 13h44

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