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 :

SVP quelqu'un me corrige cette requête UPDATE


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Par défaut SVP quelqu'un me corrige cette requête UPDATE
    salut, je ne trouve pas où est le problème dans cette syntaxe

    dans ce code j'ai la possibilité d'insérer ou mettre à jours un enregistrement dans la table USERS dont les champs sont : id(entier long, primary key);name ;gender; password; valid (texte court)
    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
     
    Dim cn As New OleDb.OleDbConnection
            cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "\data.accdb"
     
    Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
    Dim cmd As New OleDb.OleDbCommand
            If Not Cn.State = ConnectionState.Open Then
                'open connection if it is not yet open
                Cn.Open()
            End If
     
            cmd.Connection = Cn
            'check whether add new or update
            If Me.txtdID.Tag & "" = "" Then
                'add new 
                'add data to table
                cmd.CommandText = "INSERT INTO USERS(id, name, gender, password, valid) " & _
                                " VALUES(" & Me.txtdID.Text & ",'" & Me.txtName.Text & "','" & _
                                Me.cboGender.Text & "','" & Me.txtPassWord.Text & "','" & _
                                Me.txtValidPassWord.Text & "')"
                cmd.ExecuteNonQuery()
            Else
                'update data in table
                cmd.CommandText = "UPDATE USERS " & _
                            " SET id=" & Me.txtdID.Text & _
                            ", name='" & Me.txtName.Text & "'" & _
                            ", gender='" & Me.cboGender.Text & "'" & _
                            ", password='" & Me.txtPassWord.Text & "'" & _
                            ", valid='" & Me.txtValidPassWord.Text & "'" & _
                            " WHERE id=" & Me.txtdID.Tag
                cmd.ExecuteNonQuery()
            End If
            'refresh data in list
            RefreshData()
            'clear form
            Me.btnClear.PerformClick()
     
            'close connection
            Cn.Close()
    End Sub
    à l’exécution du code l'erreur suivante me bloque
    l'exception OleDbException n'est pas gérée
    merci
    Erreur de syntaxe dans l'instruction UPDATE.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    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 197
    Par défaut
    il te faut un try catch (en général en on met partout)
    , trouver le vrai message d'erreur
    et utiliser les requetes paramétrées (oledbparameter)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour,

    En complément des remarques de Pol63
    Les requêtes paramétrées sont présentées dans Tuto ou Faq.

    Mettre à jour l'id n'est pas très judicieux.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Par défaut la solution consiste à mettre les champs entre accolades
    la solution que j'ai remarque consiste à mettre les champs de la table à mettre à jours entre accolades ...
    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
     
    Dim cn As New OleDb.OleDbConnection
            cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "\data.accdb"
     
    Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
    Dim cmd As New OleDb.OleDbCommand
            If Not Cn.State = ConnectionState.Open Then
                'open connection if it is not yet open
                Cn.Open()
            End If
     
            cmd.Connection = Cn
            'check whether add new or update
            If Me.txtdID.Tag & "" = "" Then
                'add new 
                'add data to table
                cmd.CommandText = "INSERT INTO USERS([id], [name], [gender], [password], [valid]) " & _
                                " VALUES(" & Me.txtdID.Text & ",'" & Me.txtName.Text & "','" & _
                                Me.cboGender.Text & "','" & Me.txtPassWord.Text & "','" & _
                                Me.txtValidPassWord.Text & "')"
                cmd.ExecuteNonQuery()
            Else
                'update data in table
                cmd.CommandText = "UPDATE USERS " & _
                            " SET [id]=" & Me.txtdID.Text & _
                            ", [name]='" & Me.txtName.Text & "'" & _
                            ", [gender]='" & Me.cboGender.Text & "'" & _
                            ", [password]='" & Me.txtPassWord.Text & "'" & _
                            ", [valid]='" & Me.txtValidPassWord.Text & "'" & _
                            " WHERE id=" & Me.txtdID.Tag
                cmd.ExecuteNonQuery()
            End If
            'refresh data in list
            RefreshData()
            'clear form
            Me.btnClear.PerformClick()
     
            'close connection
            Cn.Close()
    End Sub

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    password est un mot réservé du moteur de base de données à éviter lorsqu'il s'agit de choisir des noms d'identificateur.
    Les remarques indiquées restent d'actualité pour ce code
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête update à partir d'une autre table
    Par amiral thrawn dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/02/2024, 11h40
  2. Sauriez-vous svp m'expliquer cette requête JOIN SVP ?
    Par beegees dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/12/2008, 15h17
  3. Réponses: 11
    Dernier message: 10/12/2008, 20h49
  4. requête update qui marche pas
    Par MrsFrizz dans le forum Langage SQL
    Réponses: 4
    Dernier message: 01/12/2004, 08h16
  5. PB Requête update
    Par cassi2 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 25/10/2004, 14h15

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