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 :

[ADO.Net] Comment retrouver une erreur de syntaxe dans une requête ?


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 45
    Points : 26
    Points
    26
    Par défaut [ADO.Net] Comment retrouver une erreur de syntaxe dans une requête ?
    bonjour,
    je travaille sur un projet où je dois déclarer un incident, j'ai écrit le code et puis lorsque je compile, je remplie les cases nécessaires pour l'enregistrement et je clique sur enregistrer il me donne l'erreur:

    ligne1: syntaxe incorrecte vers '23'

    mais j'ai aucun '23' dans mon code???? est-ce qlq1 peut me dire où je dois chercher l'erreur pour le corriger????

    une autre chose c q à chak foi je recompile j'ai la meme erreur avec un nombre différent cette fois.

    svp aidez moi, il se peut que cette erreur soit banal mais je la voi pa .
    et merci cordialement

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    si tu doubles clic sur l'erreur ca t'amène dessus normalement ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 45
    Points : 26
    Points
    26
    Par défaut
    mais l'erreur est générée comme une exception, elle s'affiche dans un MsgBox et puis je clique sur ok( le seul bouton), et lorsque je retourne vers le code: pas d'erreur!!!!

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    try catch et tu sauras la ligne de l'erreur
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 45
    Points : 26
    Points
    26
    Par défaut
    j'ai déjà mis dans mon code try catch, et l'erreur apparait dans le programme généré à cause du catch. je crois que j'ai pas compris votre solution, pouvez- vous me rexpliquer?
    et pour la ligne 1 qui apparait dans le message d'erreur, est-ce qu'elle la 1ère ligne après le try??

    merci d'avance

  6. #6
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Clique sur le menu "Affichage" puis le sous menu "Liste des erreurs", tu dois avoir une fenêtre en bas de ton écran qui s'ouvre avec la liste des erreurs détectées, surtout s'il s'agit d'une erreur de syntaxe.
    Dans cette fenêtre doublie clique sur l'erreur indiquée comme te suggérait Sperot et tu devrais arriver sur la ligne qui provoque l'erreur.
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    je pense qu'il arrive à compiler et que c'est une erreur d'execution vu qu'il dit que c'est à cause du catch


    met un point d'arret sur le catch ex as exception
    quand tu arrives dessus tu selectionnes ex et tu fais clic droit / espion express
    tu auras les infos de l'erreur et dans stacktrace tu verras la ligne de l'erreur
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 45
    Points : 26
    Points
    26
    Par défaut
    j'ai appliké ta méthode sperot51, et on ma donné l'erreur suivante:
    le nom 'ex' n'est pas déclaré
    or ex est déclaré en catch ex as exception
    et dans l'executable il me donne l'erreur précédente cad syntaxe incorrecte vers '??' où ?? est un nombre qui change à chaque fois que je recompile '07', '01' '23' etc.

    voila le bout du code entre try catch peut etre vous m'aiderez à trouver l'erreur:
    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
    21
    22
    23
    24
    25
    26
    27
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            Try
     
                systRequete = "select * from système where libellé = '" & ComboBox1.Text & "'"
                userRequete = "select * from authentification where login ='" & nomUser & "'"
                strRequete = "insert into incident(id_systeme, date_incident, heure_incident, agence, users_concernés, id_user_declare, état_résolution, composante_concernée) values (" & idSys & ", " & DateTimePicker1.Value & ", " & MaskedTextBox1.Text & ", " & ComboBox2.Text & ", " & TextBox1.Text & ", " & idUser & ", 'non résolu', " & TextBox2.Text & ")"
                Dim oConnexion As New SqlConnection(strConnexion)
                Dim oCommandSys As New SqlCommand(systRequete, oConnexion)
                Dim oCommandUser As New SqlCommand(userRequete, oConnexion)
                Dim oCommand As New SqlCommand(strRequete, oConnexion)
                oConnexion.Open()
                Dim oReader As SqlDataReader = oCommandSys.ExecuteReader()
                While oReader.Read()
                    idSys = oReader.GetValue(0)
                End While
                oReader.Close()
                Dim ooReader As SqlDataReader = oCommandUser.ExecuteReader()
                While ooReader.Read()
                    idUser = ooReader.GetValue(0)
                End While
                ooReader.Close()
     
                oCommand.ExecuteNonQuery()
                oConnexion.Close()
            Catch ex As Exception
                MsgBox("erreur: " & ex.Message)
            End Try
    merci cordialement

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    ex est accessible à la ligne après le catch, là où tu as ton msgbox
    le message box avec l'erreur dont tu parles au début c'est toi qui l'a mis, on a pas l'impression que tu l'as compris
    et à la place de ex.message tu peux mettre ex.stacktrace (ou les 2)

    sinon j'étais sûr que c'était une erreur d'sql ...
    tu execute une requete dynamique donc c'est pour ca que le message d'erreur change
    donc il faut trouver ce que tu fais de mal dans ta requete
    voir utiliser des sqlparameter qui sont plus fiables que de la concaténation
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  2. Réponses: 5
    Dernier message: 14/06/2008, 13h30
  3. [VB.Net] Comment résoudre l'erreur si suppression dans la table maitre ?
    Par Alexandre` dans le forum Accès aux données
    Réponses: 1
    Dernier message: 26/08/2006, 15h51
  4. [SQL] erreur de syntaxe dans une requete
    Par einsteineuzzz dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 15/06/2006, 09h24
  5. Erreur de syntaxe dans une requete
    Par linou dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/08/2005, 12h44

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