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 :

Mise a jour base de données


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 192
    Points : 68
    Points
    68
    Par défaut Mise a jour base de données
    Bonjour a tous,

    Je debute en vb.net et j'essaie de retranscrire une vieille application access.
    Apres avoir epluché le tuto de Lasserre et étudié plusieurs tuto sur le net, je n'arrive tjs pas à mettre à jour ma base de données.
    Voici le bout de code de la connection lors de l'ouverture du formulaire:

    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
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'ouverture de la connection
            conn = "provider = microsoft.ace.oledb.12.0 ; data source = " & "D:\BdD\Dossier Location\Location1.accdb;"
            cnx = New OleDbConnection
            cnx.ConnectionString = conn
            cnx.Open()
     
            sql = "select * from BAILLEUR" 'ORDER BY [Bailleur id]"
            cmd = New OleDbCommand(sql)
            dta = New OleDbDataAdapter(cmd)
            cmd.Connection() = cnx
     
     
            'chargement du DataSet à partir du DataAdapter                  
            dta.Fill(dts, "BAILLEUR")
     
            'chargement de la DataTable à partir du DataSet                 
            dtt = dts.Tables("BAILLEUR")
    et voici le bout code de tentative de mise a jour de la base:

    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
    Private Sub btnenr_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnenr.Click
     
            'si un champ n'est pas rempli fin de procédure
            If Me.txtnom.Text = "" Or _
               Me.txtad1.Text = "" Or _
               Me.txtville.Text = "" Then
     
                MessageBox.Show("Vous devez remplir tous les champs !", "Erreur...", MessageBoxButtons.OK, MessageBoxIcon.Error)
     
                Me.txtnom.Focus()
     
                Exit Sub
     
            End If
     
            'crátion d'une nouvelle ligne avec les données des textbox
            dtr = dts.Tables("BAILLEUR").NewRow
            dtr("bailleur nom") = Me.txtnom.Text
            dtr("bailleur adresse1") = Me.txtad1.Text
            dtr("bailleur ville") = Me.txtville.Text
     
            'ajout de la ligne dans le DataSet
            dts.Tables("BAILLEUR").Rows.Add(dtr)
     
            'création et exécution du commandbuilder
            'pour mettre à jour le DataAdapter
            cmdb = New OleDbCommandBuilder(dta)
     
            'mise à jour des données du DataAdapter
            'à partir du commandbuilder
     
            dta.Update(dts, "BAILLEUR")
    j'ai beau tout essayer, j'ai toujours le meme message d'erreur sur la derniere ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dta.Update(dts, "BAILLEUR")
    Le message :
    Erreur de syntaxe lors de l'instruction INSERT INTO
    Si pouviez me de bloquer la situation ce serait vraiment sympa!!!

    Merci d'avance a tous

  2. #2
    Membre expérimenté 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
    Points : 1 455
    Points
    1 455
    Par défaut
    j'ais rencontré ce probléme ...
    alors je t'explique le contexte (parce que sa peut être différent pour toi)
    moi je consulte ma base et je modifie les enregistrements *je n'en ajoute pas*

    de la je suis parti du principe que je prenais toutes mes lignes chargées "Rows"
    et que je les remplacées une par une ...
    (peut importe l'ordre, en gros j'efface 15 lignes et je remet les 15 nouvelles lignes)
    ma requête SQL se charge de reclasser ma base a chaque fois que je la charge

    voila pour les sources si tu veut:

    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
                '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
                ''Enregistrement des modifications apportées au tableau des Coordonnées''
                '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
                Dim IndexLigne As Integer = 0
                Dim NbrLignes As Integer = ObjetDataTableTblCoord.Rows.Count
                For ii As Integer = 0 To NbrLignes - 1
                    Dim coupureSelect As Integer = CInt(ObjetDataTableTblCoord.Rows(ii).Item("NumCoupure").ToString)
                    Dim CoucheSelect As Integer = CInt(ObjetDataTableTblCoord.Rows(ii).Item("NumCouche").ToString)
                    'coupure
                    If dtNumCoupure = coupureSelect Then
                        'Couche
                        If cmbxNumCouche.SelectedIndex + 1 = CoucheSelect Then
                            ' Extraction de l'enregistrement courant
                            ObjetDataRowTblCoord = ObjetDataTableTblCoord.Rows(ii)
     
                            For indexColonneCoord As Integer = 0 To 6
                                ' *** Idem pour la clé primaire NumKey (voir base de données), on n'y touche pas, elle est irremplaçable *** '
     
                                'récupération des valeurs du tableau(dataGrid)
                                ObjetDataRowTblCoord(indexColonneCoord) = CInt(dtGridCoordonnees.Item(indexColonneCoord, IndexLigne).Value)
                            Next
                            'Pour modifier les valeurs changées dans le DataAdapter
                            ObjetCommandBuilder = New OleDbCommandBuilder(ObjetDataAdapterTblCoord)
                            'Mise à jour
                            ObjetDataAdapterTblCoord.Update(ObjetDataSetTblCoord, "tblCoordonnees")
                            'On vide le DataSet et on le 'recharge' de nouveau.
                            ObjetDataSetTblCoord.Clear()
                            ObjetDataAdapterTblCoord.Fill(ObjetDataSetTblCoord, "tblCoordonnees")
                            ObjetDataTableTblCoord = ObjetDataSetTblCoord.Tables("tblCoordonnees")
     
                            'On passe à la ligne suivante
                            IndexLigne = IndexLigne + 1
                        End If
                    End If
                Next

Discussions similaires

  1. Trigger mise a jour base des données
    Par alizerhouni dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 12/07/2010, 10h08
  2. mise a jour base de données
    Par guy_antoine_mav dans le forum JDBC
    Réponses: 10
    Dernier message: 21/08/2008, 16h17
  3. mise a jour base de donnée access
    Par Razielone dans le forum C#
    Réponses: 5
    Dernier message: 28/03/2008, 08h43
  4. mise a jour base de donné
    Par christi dans le forum ASP.NET
    Réponses: 6
    Dernier message: 23/02/2007, 09h31
  5. [mise a jour] base de donnée access
    Par escobar dans le forum Access
    Réponses: 11
    Dernier message: 17/07/2006, 10h12

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