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 :

Probleme de mise a jour de BDD access 2002


Sujet :

VB.NET

  1. #1
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut Probleme de mise a jour de BDD access 2002
    Bonjour,

    Je ne trouve pas pourquoi cela ne fonctionne pas, et je ne vois pas pourquoi!
    j'ai suivi la methode de http://plasserre.developpez.com/vsommair.htm

    alors j'ai une class qui gere la table "rhEmployes" qui ressemble a ça :
    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
     
       Public Class rhEmployes
            Private _strConn As String
            Private _strSql As String
            Private _adapter As OleDbDataAdapter
            Private _ObjDataSet As New Data.DataSet
            Private _ObjetCommandBuilder As OleDbCommandBuilder
     
            Public Sub New()
                _strConn = My.Settings.dataConnectionString
                _strSql = My.Settings.SQLEmployes
     
                _adapter = New OleDbDataAdapter(_strSql, _strConn)
                _ObjDataSet = New Data.DataSet
                _adapter.Fill(_ObjDataSet)
     
            End Sub
     
            Public Function update_row(ByVal matricule As String, ByVal nom As String, ByVal prenom As String, ByVal service As String, ByVal equipe As String, ByVal particularite As String, ByVal embauche As Date, ByVal interim As Boolean, ByVal actif As Boolean, ByVal manager As Boolean, ByVal empLog As String) As Boolean
                Dim expression As String = "empMatricule='" & matricule & "'"   'expression à rechercher
                Dim foundRow() As DataRow
                Dim ObjetDataTable As New DataTable
                'résultat dans des DataRow
                'ObjetCommandBuilder = New OleDbCommandBuilder(ObjetDataAdapter)
                Try
                    ObjetDataTable = _ObjDataSet.Tables(0)
                    foundRow = ObjetDataTable.Select(expression)
                    foundRow(0).BeginEdit()
                    foundRow(0)("empNom") = nom
                    foundRow(0)("empPrenom") = prenom
                    foundRow(0)("empService") = service
                    foundRow(0)("empEquipe") = equipe
                    foundRow(0)("empParticularite") = particularite
                    foundRow(0)("empActif") = actif
                    foundRow(0)("empDateDebut") = embauche
                    foundRow(0)("empLogin") = empLog
                    foundRow(0)("empManager") = manager
                    foundRow(0)("empinterim") = interim
                    foundRow(0).EndEdit()
                    _ObjetCommandBuilder = New OleDbCommandBuilder(_adapter)
     
                    _adapter.Update(foundRow)
                    MessageBox.Show(foundRow(0).RowState)
                    Return True
                Catch ex As Exception
                    MessageBox.Show(ex.Message)
                    Return False
                End Try
            End Function
     
            Public ReadOnly Property datatable() As DataTable
                Get
                    Return (_ObjDataSet.Tables(0))
                End Get
            End Property
        End Class
    et une form je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Emp As New rhEmployes
    ....
    ....
    ....
    ....
     
     If Emp.update_row(Me.TextBoxMatricule.Text, Me.TextBoxNom.Text, Me.TextBoxPrenom.Text, Me.ComboBoxService.SelectedValue, Me.ComboBoxEquipe.SelectedValue, Me.ComboBoxParticularite.SelectedValue, Me.DateEmbauche.Value, Me.CheckBoxInterim.Checked, Me.CheckBoxActif.Checked, Me.CheckBoxManager.Checked, Me.TextBoxLogin.Text) Then
    les valeurs sont correctes dans chaques champs.
    le foundRow(0).RowState = 2 --> unchanged
    Aucune exception levée !
    le FoundRow enregistre bien les mise à jour.

    Mais voila, aucune modification n'est faite dans la base de données ????
    Pouviez-vous aider un novice ?

    Merci d'avance

  2. #2
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut
    Personne pour un novice en VB.net comme moi ???

  3. #3
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 776
    Points
    1 776
    Par défaut
    Bonjour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     foundRow = ObjetDataTable.Select(expression)
    rend un tableau d'objets DataRow.

    Donc je ne comprends même pas comment le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    _adapter.Update(foundRow)
    peut fonctionner car l'update accepte un Dataset.

    Ajoute un :
    pour voir, je pense que ça te mettra en évidence la conversion implicite qui pose probléme.


    Cdt.

  4. #4
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut
    Merci pour ta reponse...

    foundRow est un tableau de datarow
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim foundRow() As DataRow
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _adapter.Update(foundRow)
    Ben, il a l'air d'accepté aussi les datarow()

    Et j'ai essayé le
    et a part le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MessageBox.Show(foundRow(0).RowState)
    qui a fallu que je remplasse par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MessageBox.Show(foundRow(0).RowState.ToString)
    rien d'autre....

  5. #5
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut
    http://msdn2.microsoft.com/fr-fr/lib...19(VS.80).aspx
    on peut bien mettre un datarow()

    Il existe peut-etre une autre slution, plus efficace ????

Discussions similaires

  1. [XL-2000] Mises à Jour réciproques BDD Access / Excel via code VB
    Par Itulu dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/03/2010, 17h55
  2. Réponses: 3
    Dernier message: 27/01/2009, 20h56
  3. probleme de mise a jour de la BD depuis un formulaire
    Par sebduduf dans le forum Requêtes
    Réponses: 1
    Dernier message: 01/11/2005, 18h07
  4. [Refresh] Probleme de mise a jour graphique
    Par Clorish dans le forum Composants VCL
    Réponses: 4
    Dernier message: 25/07/2005, 18h44
  5. [] [Install] Problème de mise à jour des dll
    Par pepper dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 23/01/2003, 22h34

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