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 :

Suppression données dans datagridview et base access


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Février 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Février 2014
    Messages : 11
    Par défaut Suppression données dans datagridview et base access
    Bonjour
    Je viens demander de l'aide pour trouver ce qui ne va pas dans ce code.
    Je n'ai aucune erreur dans le fonctionnement, le code va jusqu'au bout avec le MsgBox("Delete Success") bien affiché mais la ligne sélectionnée n'est pas supprimée .
    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
    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
            provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=""E:\PROJET VB_BASIC\TE_RH\Mas_" &
            "projet\Mas_projet\bin\Debug\MAS_Database.accdb"""
     
     
            connString = provider & dataFile
            myConnection.ConnectionString = connString
            myConnection.Open()
            Dim str As String
            str = "Delete from [Table1] where ID = " & 9
            Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
            MsgBox("Delete Success")
            Try
                cmd.ExecuteNonQuery()
                cmd.Dispose()
                myConnection.Close()
     
            Catch ex As Exception
                MsgBox(ex.Message)
                End Try
     
        End Sub
    je me trompe peut etre mais je pense qu'il y a un hic dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str = "Delete from [Table1] where ID = " & 9
    Merci d'avance de votre aide

    Cordialement

  2. #2
    Membre éclairé
    Homme Profil pro
    .
    Inscrit en
    Février 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2014
    Messages : 50
    Par défaut
    Essaie ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str = "Delete from [Table1] where ID = 9"
    Si tu veux passer le ID avec une variable tu fais (si ton ID est un entier) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    dim iIDToDelete as integer = 9
    str = "Delete from [Table1] where ID = " + iIDToDelete.ToString()
    à la place de "iIDToDelete.ToString()" tu peux aussi écrire "CStr(iIDToDelete)".

    Ta requête est une chaîne de caractères donc tu dois convertir ton ID qui est un entier en chaîne --> .ToString() ou CStr()


    Après la suppression de l'enregistrement en BDD n'oublie pas de recharger les données de la grille pour voir disparaître ta ligne...

  3. #3
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Je crois que c'est ton index qui est mal exprimé :
    Essaye donc :

    Dim Index As Integer = 9
    "DELETE FROM TAble1 WHERE (Id = " & Index & ")")

    Perso, j'utilise la procédure suivante :
    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
        Private Sub SauveSuppress(ByVal IdArticle As Integer) ' Mode connecté : exécution d'un ordre SQL
            Dim ConnexionTMP As OleDbConnection = Nothing
            Dim MaCommande As OleDlCommand = Nothing
            ConnexionTMP = OuvreConnexion(ChaineConnexion, True)
            MaCommande = CreeCommande(MaConnexion, "DELETE FROM TProduit WHERE (Id = " & IdArticle & ")")
            ' Il peut y avoir rejet …
            Try
                If MaCommande.ExecuteNonQuery() < 1 Then
                    Throw New Exception("Identifiant non trouvé")
                End If
            Catch Ex As Exception
                MessageBox.Show(Ex.Message & CR & "Suppression refusée" & CR & "Tables en mémoire rechargées")
            Finally
                MonStock.AcceptChanges()
            End Try
            ConnexionTMP.Close()
        End Sub
    Bien sûr, si tu veux utiliser cette procédure, tu dois adapter un peu, chez moi :
    • ChaineConnexion est connue dans tout le programme
    • OuvreConnexion réalise l'Open
    • CreeCommande crée la commande et lui fournit sa chaine SQL


    J'espère que cela t'aidera ...

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

Discussions similaires

  1. [MySQL] Suppression données dans base
    Par UDSP50 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 23/05/2017, 16h07
  2. Impossible d'insérer des données dans une simple base access
    Par Archlinux dans le forum Accès aux données
    Réponses: 5
    Dernier message: 23/08/2013, 21h28
  3. Réponses: 11
    Dernier message: 20/03/2007, 00h13
  4. afficher de l'hébreu dans un memo (base ACCESS)
    Par nicassy dans le forum VBA Access
    Réponses: 3
    Dernier message: 04/11/2005, 16h15
  5. Ajouter un champ dans une autre base Access
    Par scaalp dans le forum Access
    Réponses: 2
    Dernier message: 20/10/2005, 15h34

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