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

VB.NET Discussion :

Syntaxe requête INSERT


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Par défaut Syntaxe requête INSERT
    Salut à tous !

    Je développe actuellement un programme en VB.NET, mais je rencontre une erreur de syntaxe dans une requête INSERT. Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'On insère les items dans la table items_liste_commune
                    Dim i As Integer
                    For i = 1 To CInt(nb_items)
                        req_insert_ilc = "INSERT INTO items_liste_commune(LISTEC_ID_LISTEC, NO_ITM) values('" + valeur + "', '" + i + "')"
                        Dim cmd_insert_ilc As New OleDb.OleDbCommand(req_insert_ilc, Conn)
                        cmd_insert_ilc.ExecuteNonQuery()
                    Next
    Si quelqu'un a une idée, je suis preneur

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    Et revois tes cours de SQL
    Si le champ LISTEC_ID_LISTEC est un numérique en base, pourquoi mettre sa valeur entre quote?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Par défaut
    Les deux champs sont de type 'Numérique'. Mais quand j'enlève les quotes, ça ne change rien du tout

    "INSERT INTO items_liste_commune(LISTEC_ID_LISTEC, NO_ITM) values(valeur, i)"

    A mon avis, c'est un truc tout bête que j'ai du mal à voir. Et je ne comprends rien aux requêtes paramétrées ...

  5. #5
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    Aidez nous à vous aider: Quel est le message d'erreur?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Par défaut
    Exception Details: System.Data.OleDb.OleDbException: Aucune valeur donnée pour un ou plusieurs des paramètres requis

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Par défaut
    Le plus surprenant, c'est qu'il récupère bien mes valeurs (valeur et i) !!

  8. #8
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    req_insert_ilc = "INSERT INTO items_liste_commune(LISTEC_ID_LISTEC, NO_ITM) values('" + valeur + "', '" + i + "')"
    Que vaut valeur?

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Par défaut
    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
    'On récupère l'ID de la liste nouvellement créée pour renseigner le champ NM_LD de la table liste_commune
                Dim dUfID As OleDb.OleDbDataReader
                Dim req As String = "select ID_LISTEC from liste_commune where DESCRIPTION = '" + Me.txtLigne1.text + "'"
                Dim cmd2 As OleDb.OleDbCommand = New OleDb.OleDbCommand(req, Conn)
                dUfID = cmd2.ExecuteReader
                Dim valeur As String
    
                'Test si l'ID existe
                If dUfID.HasRows Then
                    dUfID.Read()
                    'On remplit ensuite le champ NM_LD avec la valeur obtenue
                    valeur = dUfID.Item("ID_LISTEC")
                    req_update_lc = "UPDATE liste_commune SET NM_LD='LISTE " + valeur + "' WHERE DESCRIPTION='" + Me.txtLigne1.Text + "'"
                    Dim cmd_update As New OleDb.OleDbCommand(req_update_lc, Conn)
                    cmd_update.ExecuteNonQuery()
                End If
    En gros, c'est la valeur du champ "ID_LISTEC" (qui est le même que LISTEC_ID_LISTEC) de mon reader (dUfID)

  10. #10
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Citation Envoyé par merlubreizh Voir le message
    Exception Details: System.Data.OleDb.OleDbException: Aucune valeur donnée pour un ou plusieurs des paramètres requis
    Hmmm, tu peux identifier la ligne où a lieu l'erreur ?
    parce qu'à priori, ce message n'est pas une exception due à une erreur de syntaxe SQL...

  11. #11
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    Valeur est donc un string.

    Quels sont les types base de données de LISTEC_ID_LISTEC et NO_ITM (varchar? char? int?)

    Où se situe le code d'insertion par rapport à celui que vous venez de poster?
    On ne sait toujours pas ce que vaut "valeur" dans le code d'insertion

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Par défaut
    Tout d'abord merci pour vos réponses !

    Concernant la ligne de l'erreur, il me surligne celle de la requête.
    Le code d'insertion se situe tout juste après celui que j'ai posté en dernier. Et les deux champs LISTEC_ID_LISTEC et NO_ITM sont des entiers. Enfin, la variable "valeur" du code d'insertion est la même que celle dans mon dernier bout de code.

  13. #13
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    Quelle est la définition de la table items_liste_commune ? As-tu bien défini des valeurs pour toutes les colonnes dont le caractère est obligatoire ?

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Par défaut
    La table a été créée manuellement sous Access :



    Et oui, j'ai bien défini des valeurs pour toutes les colonnes dont le caractère est obligatoire

Discussions similaires

  1. Erreur syntaxe requête SQLl pour insertion dans ma servlet
    Par kevin254kl dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 16/10/2014, 23h01
  2. [AC-2003] Erreur de syntaxe dans une requête insert into.union all
    Par ostrich95 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 29/04/2014, 14h03
  3. pb de syntaxe requête INSERT INTO
    Par emulamateur dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 14/06/2011, 12h55
  4. Problème de requête insert into (syntaxe)
    Par Bizoo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 19/09/2008, 17h23
  5. [MySQL] Requête INSERT générant une erreur de syntaxe SQL
    Par lavande4 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/08/2008, 14h41

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