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 :

Delete row Access


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 61
    Par défaut Delete row Access
    Bonjour,

    J'ai une base Access qui comprend une table USERS. J'ai créé un bouton SUPPRIMER pour pouvoir supprimer un utilisateur. Dans mon bouton j'ai ceci

    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
            Dim sql_supprimer As String
            Try
     
                sql_supprimer = "DELETE from USERS where ALPS ='" & TXT_ALPS_USER.Text & "'"
                commande_user = New OleDb.OleDbCommand(sql_supprimer, con_user)
                commande_user.ExecuteNonQuery()
                con_user.Close()
                con_user.Open()
                MsgBox("L'utilisateur a bien été supprimé")
     
            Catch ex As OleDbException
     
                MsgBox(ex.Message, MsgBoxStyle.Critical, "Oledb Error")
     
            Catch ex As Exception
     
                MsgBox(ex.Message, MsgBoxStyle.Critical, "General Error")
     
            End Try
     
        End Sub
    La suppression fonctionne mais la mise à jour ne se fait pas. Je suis obligé de quitter le formulaire pour ne plus voir mon utilisateur supprimer. Quelqu'un pourrait il m'aider ?

    Merci d'avance,

  2. #2
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Bonjour,

    c'est normale,
    après ta suppression, tu ferme puis tu ré-ouvre seulement ta connexion à ta base sans recharger ton dataset.


    le célèbre P.Lasserre à réponse à ta question
    http://plasserre.developpez.com/cour...ees2#LXVII-E-2
    Effacer l'enregistrement en cours:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ObjetDataSet.Tables("FICHEPATIENT").Rows(RowNumber).Delete()
     
    ObjetCommandBuilder = New OleDbCommandBuilder(objetDataAdapter)
     
    ObjetDataAdapter.Update(objetDataSet, "FICHEPATIENT")
    Pas besoin de fermer ta connexion et la ré-ouvrir,
    met à jour ton dataset (p-e même le datagridview au besoin)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 61
    Par défaut
    Merci d'avoir répondu,

    J'ai déjà essayé de mettre à jour mon dataset dans ma procédure. La suppression marche mais dans ce cas là j'ai un message d'erreur du style Aucune ligne à la position 1.. Problème qui est dû je crois à cause de l'index.

    Sinon pour la procédure de P.Lasserre. En ce qui me concerne, j'ai du oublier un chapitre car ça ne marche pas chez moi

    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
     
            Dim sql_supprimer As String
            Try
                sql_supprimer = "DELETE from USERS where ALPS ='" & TXT_ALPS_USER.Text & "'"
                commande_user = New OleDb.OleDbCommand(sql_supprimer, con_user)
                commande_user.ExecuteNonQuery()
                dts_user.Clear()
                MsgBox("L'utilisateur a bien été supprimé")
            Catch ex As OleDbException
     
                MsgBox(ex.Message, MsgBoxStyle.Critical, "Oledb Error")
     
            Catch ex As Exception
     
                MsgBox(ex.Message, MsgBoxStyle.Critical, "General Error")
     
            End Try
     
     
        End Sub

  4. #4
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    En fait il faut simplement que tu mette à jour ton Dataset en re-Requettant ta BDD après avoir exécuté la requête de DELETE.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            Try
                sql_supprimer = "DELETE from USERS where ALPS ='" & TXT_ALPS_USER.Text & "'"
                commande_user = New OleDb.OleDbCommand(sql_supprimer, con_user)
                commande_user.ExecuteNonQuery()
                dts_user.Clear()
     
                ' Il manque la mise à jour du DataSet
                ' Il faut que tu lise ta BDD comme tu dois le faire au form_load
     
                MsgBox("L'utilisateur a bien été supprimé")
            Catch ex As OleDbException

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 61
    Par défaut
    Merci encore pour ta réponse mais je tourne toujours en rond.

    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
            Dim sql_supprimer As String
            Dim mybuild As OleDbCommandBuilder
     
            Try
                sql_supprimer = "DELETE from USERS where ALPS ='" & TXT_ALPS_USER.Text & "'"
                commande_user = New OleDb.OleDbCommand(sql_supprimer, con_user)
                commande_user.ExecuteNonQuery()
                dts_user.Clear()
                mybuild = New OleDbCommandBuilder(dta_user)
                dta_user.Update(dts_user, "USERS")
     
                MsgBox("L'utilisateur a bien été supprimé")
     
                demarrage_users() 'connexion
            Catch ex As OleDbException
     
                MsgBox(ex.Message, MsgBoxStyle.Critical, "Oledb Error")
     
            Catch ex As Exception
     
                MsgBox(ex.Message, MsgBoxStyle.Critical, "General Error")
     
            End Try
    Après avoir cherché comment faire pour mettre à jour mon dataset, j'en suis arrivé là mais c'est toujours pareil ..
    Aurais tu un exemple ?
    Merci d'avance

  6. #6
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    ça fait longtemps que j'ai fait un projet la dessus.

    en faite il y a 2 manières de procéder.
    Et la on est en train de faire un mix des deux

    1. Première méthode: effacement dans le Dataset puis mise à jour de la BDD
      souce: http://www.daniweb.com/software-deve.../threads/48686
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      'delete row
      DS_Pass1.Tables("PwordStore").Rows(0).Delete()
      Dim cmdbuilder As OleDbCommandBuilder = New oleDbCommandBuilder(OleDAPass)
      OleDAPass.update(DS_Pass1)
    2. Deuxième méthode: effacement dans la BDD puis mise à jour du Dataset
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      'Suppression de l'enregistrement dans la BDD
      sql_supprimer = "DELETE from USERS where ALPS ='" & TXT_ALPS_USER.Text & "'"
      commande_user = New OleDb.OleDbCommand(sql_supprimer, con_user)
      commande_user.ExecuteNonQuery()
      dts_user.Clear()
      'Mise à jour du Dataset
      sql_MAJ = "SELECT * from USERS"
      commande_user = New OleDb.OleDbCommand(sql_MAJ, con_user)
      ' J'écris le code de mémoire la...
      ' mais tu vois la démarche maintenant


    Je ne te donne que des idées, pas la solution.
    Regarde tout ce qui se fait sur internet
    tu apprendra plus en cherchant par toi même


    PS: désolé pour le retard.

Discussions similaires

  1. [VB.NET] Delete Row DataGridView temporairement
    Par tssi555 dans le forum VB.NET
    Réponses: 2
    Dernier message: 26/08/2009, 12h59
  2. probleme quand delete rows d une table
    Par benamar06 dans le forum C#
    Réponses: 3
    Dernier message: 16/02/2009, 13h02
  3. delete row de ma base
    Par anisj1m dans le forum JDBC
    Réponses: 7
    Dernier message: 20/03/2007, 15h00
  4. [C# 2.0] DataGridView add/delete row ?
    Par fix105 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 30/11/2006, 16h52

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