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 :

Problème dans requête SQL [Débutant]


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Mai 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Mai 2018
    Messages : 37
    Par défaut Problème dans requête SQL
    Bonjour,

    Voila le contexte :
    Je liste les dossiers dans une ListView, lorsque je sélectionne une ligne de cette dernière chaque éléments se met en place dans des TextBox que je peux modifier. Lorsque les modifications sont faites, je veux mettre a jour l'enregistrement dans la base de donnée. et c'est la que j'ai une erreur d'exception que je ne comprend pas.

    Voici mon code :
    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
      'Base de Donnée
            Dim MaConnexion As New OleDbConnection(MaBDD)
            'test d'ouverture
            If MaConnexion.State = ConnectionState.Closed Then MaConnexion.Open() 'Ouverture
     
            'Elements sélectionner dans la liste
            Dim dossier As ListViewItem = LV_Dossiers.SelectedItems(0)
            Dim id As String = dossier.SubItems(0).Text
     
            'Commande SQL pour récupérer tous les utilisateurs/Dossier de la base de données et transfert des résultats dans Users
            Dim CommandSQL As New OleDbCommand("UPDATE Dossiers SET NomUser=@nom, PrenomUser=@prenom, NomDossier=@nomD, DesDossier=@desD, MPDUser=@mdpD WHERE IDUser=@id", MaConnexion)
            CommandSQL.Parameters.AddWithValue("@nom", TB_Nom.Text)
            CommandSQL.Parameters.AddWithValue("@prenom", TB_Prenom.Text)
            CommandSQL.Parameters.AddWithValue("@nomD", TB_NomDossier.Text)
            CommandSQL.Parameters.AddWithValue("@desD", TB_DescriptionDossier.Text)
            CommandSQL.Parameters.AddWithValue("@mdpD", LB_mdpC.Text)
            CommandSQL.Parameters.AddWithValue("@id", id)
     
            CommandSQL.ExecuteNonQuery() 'Excustion de la commande SQL
            CommandSQL.Parameters.Clear() 'Nétoyage des parametres
            MaConnexion.Close()
     
            'Réiniatilisation et mise à jour de la liste des dossiers
            majListView()
    Base de données Access :
    Nom : CaptureTable.PNG
Affichages : 352
Taille : 7,9 Ko

    Erreur d'exception :
    Nom : CaptureException.PNG
Affichages : 336
Taille : 48,7 Ko

    Merci par avance pour votre aide.

  2. #2
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Salut,
    Un de tes paramètres doit avoir une valeur nul ?
    @+

  3. #3
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Mai 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Mai 2018
    Messages : 37
    Par défaut
    Justement, aucun de mes paramètres n'est vide. Y compris le Mot de passe que j'ai mis à "0" lorsqu'il n'y en a pas.

    J'ai même remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CommandSQL.Parameters.AddWithValue("@nom", TB_Nom.Text)
            CommandSQL.Parameters.AddWithValue("@prenom", TB_Prenom.Text)
            CommandSQL.Parameters.AddWithValue("@nomD", TB_NomDossier.Text)
            CommandSQL.Parameters.AddWithValue("@desD", TB_DescriptionDossier.Text)
            CommandSQL.Parameters.AddWithValue("@mdpD", LB_mdpC.Text)
            CommandSQL.Parameters.AddWithValue("@id", id)
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CommandSQL.Parameters.AddWithValue("@nom", "1")
            CommandSQL.Parameters.AddWithValue("@prenom", "2")
            CommandSQL.Parameters.AddWithValue("@nomD", "3")
            CommandSQL.Parameters.AddWithValue("@desD", "4")
            CommandSQL.Parameters.AddWithValue("@mdpD", "5")
            CommandSQL.Parameters.AddWithValue("@id", "12")
    Histoire de tester les paramètres.



    Je sèche...

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    peut etre que c'est le fait que id soit un string en c# et un nombre dans access

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CommandSQL.Parameters.AddWithValue("@id", 12)
    ca marche avec ca ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Mai 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Mai 2018
    Messages : 37
    Par défaut
    Toujours pareil.... Mais je crois que j'avais déjà essayé avant de poster sur le fofo...

    On dirais qu'il y a une erreur dans ma requête, mais je ne vois pas où et je me crève les yeux et je m'énerve en plus...

    cdt,

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    en même temps access n'a jamais été un bon outil, les messages d'erreur y sont toujours le moins explicite possible
    et c'est plus un jouet pour débutant qu'une vraie base de données, aucun pro ne travaille avec ça s'il peut faire autrement

    peut etre le addwithvalue (qui doit être marqué [obsolete] d'ailleurs), essaye avec un .add qui spécifie le type de la colonne
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Mai 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Mai 2018
    Messages : 37
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    en même temps access n'a jamais été un bon outil, les messages d'erreur y sont toujours le moins explicite possible
    et c'est plus un jouet pour débutant qu'une vraie base de données, aucun pro ne travaille avec ça s'il peut faire autrement
    En même temps Access est bien pratique (Tout dans un seul et même fichier), ceci étant dit, j'aimerai bien trouver un tuto sur l'utilisation de base SQLite par exemple (Mais c'est un aparté)

    Citation Envoyé par Pol63 Voir le message
    peut etre le addwithvalue (qui doit être marqué [obsolete] d'ailleurs), essaye avec un .add qui spécifie le type de la colonne
    Tu peux être plus explicite sur l'utilisation de .Add à la place de .AddWithValue (Qui n'est pas marqué comme obsolète il me semble (VS2015) je doit admettre que je sèche une peux plus là...

    Merci par avance.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    En effet c'est une des surcharges de .add qui est deprecated
    Sinon c'est .add(nom, type).value = valeur je crois
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Ce qui me surprends un peu, c'est que l'erreur ne se trouve pas au moment de l'exécution, ni au moment du passage des paramètres, mais au moment de l'instanciation de CommandSQL :
    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim CommandSQL As New OleDbCommand("UPDATE Dossiers SET NomUser=@nom, PrenomUser=@prenom, NomDossier=@nomD, DesDossier=@desD, MPDUser=@mdpD WHERE IDUser=@id", MaConnexion)

    D'après mes souvenirs, OleDb, tout comme Odbc, ne support pas les paramètres nommés, mais uniquement les paramètres nommés (contrairement aux connecteur natifs).

    Ainsi, peux-tu modifier la déclaration en :
    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim CommandSQL As New OleDbCommand("UPDATE Dossiers SET NomUser=?, PrenomUser=?, NomDossier=?, DesDossier=?, MPDUser=? WHERE IDUser=?", MaConnexion)

    Attention à bien passer les paramètres dans le bon ordre !

  10. #10
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Mai 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Mai 2018
    Messages : 37
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Ainsi, peux-tu modifier la déclaration en :
    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim CommandSQL As New OleDbCommand("UPDATE Dossiers SET NomUser=?, PrenomUser=?, NomDossier=?, DesDossier=?, MPDUser=? WHERE IDUser=?", MaConnexion)

    Attention à bien passer les paramètres dans le bon ordre !
    Bonjour,

    J'ai bêtement changer ma ligne par la ligne que tu m'as donner, sans rien changer au reste du code (Ligne que je comprend d’ailleurs pas), ce qui donnerais :

    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
    Private Sub BtnModifDossier_Click(sender As Object, e As EventArgs) Handles BtnModifDossier.Click
            'Base de Donnée
            Dim MaConnexion As New OleDbConnection(MaBDD)
            'test d'ouverture
            If MaConnexion.State = ConnectionState.Closed Then MaConnexion.Open() 'Ouverture
     
            'Elements sélectionner dans la liste
            Dim dossier As ListViewItem = LV_Dossiers.SelectedItems(0)
            Dim id As String = dossier.SubItems(0).Text
     
            'Commande SQL pour récupérer tous les utilisateurs/Dossier de la base de données et transfert des résultats dans Users
            Dim CommandSQL As New OleDbCommand("UPDATE Dossiers SET NomUser=?,PrenomUser=?,NomDossier=?,DesDossier=?,MPDUser=? WHERE IDUser=?", MaConnexion)
            CommandSQL.Parameters.AddWithValue("@nom", TB_Nom.Text)
            CommandSQL.Parameters.AddWithValue("@prenom", TB_Prenom.Text)
            CommandSQL.Parameters.AddWithValue("@nomD", TB_NomDossier.Text)
            CommandSQL.Parameters.AddWithValue("@desD", TB_DescriptionDossier.Text)
            CommandSQL.Parameters.AddWithValue("@mdpD", LB_mdpC.Text)
            CommandSQL.Parameters.AddWithValue("@id", id)
     
            CommandSQL.ExecuteNonQuery() 'Excustion de la commande SQL
            CommandSQL.Parameters.Clear() 'Nétoyage des parametres
            MaConnexion.Close()
     
            'Réiniatilisation et lise à jour de la liste des dossiers
            majListView()
        End Sub
    quoi qu'il en soit, l'erreur d'exception reste la même au même moment.

    Ce que je ne comprend pas, c'est que partout ailleurs, dans mon code, le paramètre @variable fonctionne très bien... Exemple ce bout de code fonctionne parfaitement :

    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 BtnNouveauDossier_Click(sender As Object, e As EventArgs) Handles BtnNouveauDossier.Click
     
            'Base de Donnée
            Dim MaConnexion As New OleDbConnection(MaBDD)
            'test d'ouverture
            If MaConnexion.State = ConnectionState.Closed Then MaConnexion.Open() 'Ouverture
     
            'Commande SQL pour récupérer tous les utilisateurs/Dossier de la base de données et transfert des résultats dans Users
            Dim CommandSQL As New OleDbCommand("INSERT INTO Dossiers(NomUser, PrenomUser, NomDossier, DesDossier, MDPUser) VALUES(@nom, @prenom, @nomD, @desD, @mdpU)", MaConnexion)
            CommandSQL.Parameters.AddWithValue("@nom", TB_Nom.Text)
            CommandSQL.Parameters.AddWithValue("@prenom", TB_Prenom.Text)
            CommandSQL.Parameters.AddWithValue("@nomD", TB_NomDossier.Text)
            CommandSQL.Parameters.AddWithValue("@desD", TB_DescriptionDossier.Text)
            'Si le mot de passe est vide on fixe le mot de passe à "0"
            If TB_Mdp1.Text = "" Then
                CommandSQL.Parameters.AddWithValue("@mdpU", "0")
            Else
                CommandSQL.Parameters.AddWithValue("@mdpU", TB_Mdp1.Text)
            End If
            CommandSQL.ExecuteNonQuery() 'Excustion de la commande SQL
            CommandSQL.Parameters.Clear() 'Nétoyage des parametres
            MaConnexion.Close()
     
            'Réiniatilisation et lise à jour de la liste des dossiers
            majListView()
     
        End Sub
    Je sèche tellement que je suis en train de me demander si je ne vais changer de Gestionnaire de BDD comme par exemple SQLite, mais ce me demande de reprendre tout mon code non ?

    Cordialement,

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    access ne prend pas en charge les @nom
    du moins il ne prend pas en compte les noms mais repère bien que c'est une variable, et il utilise l'ordre d'apparation à faire coincider avec l'ordre du .Add (c'est bien ton cas)
    donc tant qu'à faire autant utiliser @nom au lieu de ?

    norlament le langage sql suit pas mal de normes, access ne suit pas toujours les normes, mais sur des requetes simples on peut généralement passer d'un sgbdr à l'autre sans rien changer
    (sur une requête récursive avec des fonctions fenetrées je dis pas ^^)

    peut tu nous donner la stacktrace de l'exception et les infos sur une éventuelles InnerException
    (via le bouton afficher les détails au moment de l'erreur)
    parce que je ne vois pas ce qui cloche dans ton cas quand même


    au passage :

    Dim MaConnexion As New OleDbConnection(MaBDD) + MaConnexion.Close()
    => il vaut mieux utiliser using / end using qui fermera la connexion et libèrera la mémoire même en cas d'erreur
    If MaConnexion.State = ConnectionState.Closed Then MaConnexion.Open() 'Ouverture
    => tu viens de l'instancier donc elle est fermée, donc juste .Open suffit
    CommandSQL.Parameters.Clear() 'Nétoyage des parametres
    => inutile vu que tu n'utilises pas ce command plus loin
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Mai 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Mai 2018
    Messages : 37
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    access ne prend pas en charge les @nom
    du moins il ne prend pas en compte les noms mais repère bien que c'est une variable, et il utilise l'ordre d'apparation à faire coincider avec l'ordre du .Add (c'est bien ton cas)
    donc tant qu'à faire autant utiliser @nom au lieu de ?

    norlament le langage sql suit pas mal de normes, access ne suit pas toujours les normes, mais sur des requetes simples on peut généralement passer d'un sgbdr à l'autre sans rien changer
    (sur une requête récursive avec des fonctions fenetrées je dis pas ^^)

    peut tu nous donner la stacktrace de l'exception et les infos sur une éventuelles InnerException
    (via le bouton afficher les détails au moment de l'erreur)
    parce que je ne vois pas ce qui cloche dans ton cas quand même
    Nom : Capture 1-2.PNG
Affichages : 327
Taille : 35,4 Ko

    Nom : Capture. 2-2PNG.PNG
Affichages : 314
Taille : 32,3 Ko

    Voila, je pense que tout y est


    Citation Envoyé par Pol63 Voir le message
    au passage :

    Dim MaConnexion As New OleDbConnection(MaBDD) + MaConnexion.Close()
    => il vaut mieux utiliser using / end using qui fermera la connexion et libèrera la mémoire même en cas d'erreur
    If MaConnexion.State = ConnectionState.Closed Then MaConnexion.Open() 'Ouverture
    => tu viens de l'instancier donc elle est fermée, donc juste .Open suffit
    CommandSQL.Parameters.Clear() 'Nétoyage des parametres
    => inutile vu que tu n'utilises pas ce command plus loin
    Merci des conseil... ça a du te piquer les yeux ca non ? Je vais optimiser tout cela....

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    non rien de bien grave à mettre une ligne de code inutile, y en a qui nous présente du code totalement étrange parfois ^^


    tu as essayé dans access ? je crois qu'il y a un menu où l'on peut écrire une requete, et si tu mets des paramètres y a un popup par paramètre ou tu peux mettre la valeur
    si ca passe dans access regarde le contenu de CommandSQL.Parameters en détail (clic droit / espion express ou shift + F9) pour vérifier qu'il y a bien ce qu'il y a écrit dans le code (bon nombre de paramètre, bon ordre, bonne valeur)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  14. #14
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Dans le détail de l'exception, peux-tu afficher le contenu de "keys" et "values" ?

    En effet, le message indique un paramètre manquant (ou vide).

    Aussi, dans ta capture d'écran, je n'arrive pas à voir quelle ligne provoque l'erreur.
    C'est le ExecuteNonQuery() ?

  15. #15
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Mai 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Mai 2018
    Messages : 37
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Dans le détail de l'exception, peux-tu afficher le contenu de "keys" et "values" ?

    En effet, le message indique un paramètre manquant (ou vide).

    Aussi, dans ta capture d'écran, je n'arrive pas à voir quelle ligne provoque l'erreur.
    C'est le ExecuteNonQuery() ?
    Oui, c'est cette ligne de commande :

    Désolé, je n'avais pas vu qu'on pouvait copier le contenu du détail dans le presse papier :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    L'exception System.Data.OleDb.OleDbException n'a pas été gérée
      ErrorCode=-2147217904
      HResult=-2147217904
      Message=Aucune valeur donnée pour un ou plusieurs des paramètres requis.
      Source=Microsoft JET Database Engine
      StackTrace:
           à System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
           à System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
           à System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
           à System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
           à System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
           à System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
           à ICyamBank.WinGestDossiers.BtnModifDossier_Click(Object sender, EventArgs e) dans C:\Users\aandr\onedrive\dossiers_pc\documents\visual studio 2015\Projects\ICyamBank\ICyamBank\Fenetres\WinGestDossiers.vb:ligne 180
           à System.Windows.Forms.Control.OnClick(EventArgs e)
           à System.Windows.Forms.Button.OnClick(EventArgs e)
           à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
           à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
           à System.Windows.Forms.Control.WndProc(Message& m)
           à System.Windows.Forms.ButtonBase.WndProc(Message& m)
           à System.Windows.Forms.Button.WndProc(Message& m)
           à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
           à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
           à System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
           à System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
           à System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
           à System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
           à System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
           à System.Windows.Forms.Application.RunDialog(Form form)
           à System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
           à System.Windows.Forms.Form.ShowDialog()
           à ICyamBank.WinPrincipal_ICyamBank.GestionDesDossiersToolStripMenuItem_Click(Object sender, EventArgs e) dans C:\Users\aandr\onedrive\dossiers_pc\documents\visual studio 2015\Projects\ICyamBank\ICyamBank\Fenetres\WinPrincipal_ICyamBank.vb:ligne 32
           à System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
           à System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
           à System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
           à System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
           à System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
           à System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
           à System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
           à System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
           à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
           à System.Windows.Forms.Control.WndProc(Message& m)
           à System.Windows.Forms.ScrollableControl.WndProc(Message& m)
           à System.Windows.Forms.ToolStrip.WndProc(Message& m)
           à System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
           à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
           à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
           à System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
           à System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
           à System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
           à System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
           à System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
           à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
           à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
           à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
           à ICyamBank.My.MyApplication.Main(String[] Args) dans :ligne 81
           à System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
           à System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
           à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
           à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
           à System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
           à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
           à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
           à System.Threading.ThreadHelper.ThreadStart()
      InnerException:
    C'est mieux comme ca ?

    Nom : Capture3.PNG
Affichages : 318
Taille : 84,1 Ko

  16. #16
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Mai 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Mai 2018
    Messages : 37
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    non rien de bien grave à mettre une ligne de code inutile, y en a qui nous présente du code totalement étrange parfois ^^


    tu as essayé dans access ? je crois qu'il y a un menu où l'on peut écrire une requete, et si tu mets des paramètres y a un popup par paramètre ou tu peux mettre la valeur
    si ca passe dans access regarde le contenu de CommandSQL.Parameters en détail (clic droit / espion express ou shift + F9) pour vérifier qu'il y a bien ce qu'il y a écrit dans le code (bon nombre de paramètre, bon ordre, bonne valeur)
    Je ne vois pas où je peux exécuter une commande SQL dans Access

    Il y a tellement de donnée dans la fenêtre qui s'ouvre avec MAJ+F9 que je ne sais où regarder, peux tu être plus explicite ?

    Dans CommandSQL.DbParameterCollection tout m'a l'air conforme :

    Nom : Capture4.PNG
Affichages : 307
Taille : 38,2 Ko

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    Mode création de requête ou un truc dans le genre
    Les paramètres semblent biens
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  18. #18
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Mai 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Mai 2018
    Messages : 37
    Par défaut
    Voila le requête générer directement depuis Access :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Dossiers SET Dossiers.NomUser = "Andrieu", Dossiers.PrenomUser = "Alexandre", Dossiers.NomDossier = "Dossier Alexandre Andrieu", Dossiers.DesDossier = "Description dossier Alexandre Andrieu", Dossiers.MDPUser = "1234" WHERE Dossiers.ID = "2";
    Nom : Capture6.PNG
Affichages : 300
Taille : 40,7 Ko

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    bouton sql direct
    ou clic droit quelque part / afficher sql
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  20. #20
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Mai 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Mai 2018
    Messages : 37
    Par défaut
    C'est ce que j'ai fait et ca donne ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE Dossiers SET Dossiers.NomUser = "Andrieu", Dossiers.PrenomUser = "Alexandre", Dossiers.NomDossier = "Dossier Alexandre Andrieu", Dossiers.DesDossier = "Description dossier Alexandre Andrieu", Dossiers.MDPUser = "1234"
    WHERE ((([Dossiers].[ID])="2"));

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème dans requête sql
    Par HAM_10 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/02/2017, 13h09
  2. [AC-2010] Problème dans requête SQL
    Par Dahu33CYB dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 26/04/2014, 20h12
  3. [SQL] Problème de " dans requête SQL
    Par cciocc dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/05/2006, 10h22
  4. [MySQL] Problème de requêtes SQL dans un script
    Par Nefret dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 08/09/2005, 15h08
  5. Problème de requète SQL dans un Requery
    Par Keraccess dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/10/2004, 14h58

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