Comment connecter le BindingNavigator au datagridview

Signaler
Messages postés
9
Date d'inscription
samedi 17 juillet 2010
Statut
Membre
Dernière intervention
19 août 2010
-
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
-
Bonjour, je suis débutant je travaille avec visual basic 2008 et avec Acces , je souhaite faire une base de données qui se met à jour. J'ai un problème, je ne sais pas comment connecter le BindingNavigator au datagridview, pourriez vous m'aider SVP Merci.
A voir également:

12 réponses

Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
2
dans la propriété BindingSource de ton BindingNavigator tu sélectionnes ta BindingSource et dans la propriété DataSource de ton datagridview tu choisis également ta Bindingsource une fois de plus.
En supposant que tu travailles avec Des dataset,bindingsource,...

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0
Messages postés
9
Date d'inscription
samedi 17 juillet 2010
Statut
Membre
Dernière intervention
19 août 2010

J'ai bien relié le bindingnavigator à la bindingsource, la bindingsource aux données dataset et le datasource du datagridview au bindingsource, j'arrive bien à me servir du bindingnavigator, mais cela ne se met pas à jour dans la base de données quand je quitte le programme.
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
2
qu'est ce qui ne se met pas à jour?
Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0
Messages postés
9
Date d'inscription
samedi 17 juillet 2010
Statut
Membre
Dernière intervention
19 août 2010

En fait, j'ai fait un datagridview, un bouton affichage du grid qui m'affiche les données entrées dans la base acces et un bouton mise à jour qui doit enregistrer les nouvelles données. Dans le binding navigator, quand j'appuie sur le + et sur la croix pour supprimer, cela ne fait rienne supprime rien.
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
2
Dans le bouton "enregistrer" de ta binding navigator tu dois mettre le code suivant:

       
        Me.Validate()
        Me.ta_binding_source.EndEdit()
        Me.Ta_tableadapter.Update(ton_dataset.le_nom_de_ta_table)

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
2
pour la suppression,tu remplace juste:
Me.ta_binding_source.EndEdit()


par
Me.ta_binding_source.RemoveCurrent()


Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0
Messages postés
9
Date d'inscription
samedi 17 juillet 2010
Statut
Membre
Dernière intervention
19 août 2010

cela m'affiche les lignes en double et cela n'enregistre pas dans la base de données.
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
2
postes ton code!!!
Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0
Messages postés
9
Date d'inscription
samedi 17 juillet 2010
Statut
Membre
Dernière intervention
19 août 2010

Imports System
Imports System.Data

Public Class Form1

Private ObjetConnection As OleDb.OleDbConnection

Private ObjetCommand As OleDb.OleDbCommand

Private ObjetDataAdapter As OleDb.OleDbDataAdapter

Private ObjetDataSet As New DataSet

Private strSql As String

Private ObjetDataTable As DataTable

Private strConn As String

Private ObjetCB As OleDb.OleDbCommandBuilder


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Me.VehiculeTableAdapter.Fill(Me.LouerDataSet.vehicule)

End Sub

Private Sub ButtonAfficheGrid_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonAfficheGrid.Click

strConn = "provider=microsoft.jet.oledb.4.0;data source=C:\Users\Mon ordinateur\Desktop\loc\louer.mdb"

strSql = "SELECT vehicule.* FROM vehicule"

ObjetConnection = New OleDb.OleDbConnection

ObjetConnection.ConnectionString = strConn

ObjetConnection.Open()

ObjetCommand = New OleDb.OleDbCommand(strSql)

ObjetDataAdapter = New OleDb.OleDbDataAdapter(ObjetCommand)

ObjetCommand.Connection() = ObjetConnection

ObjetCB = New OleDb.OleDbCommandBuilder(ObjetDataAdapter)

ObjetDataAdapter.Fill(ObjetDataSet, "vehicule")

ObjetDataTable = ObjetDataSet.Tables("vehicule")

DataGridView1.DataSource = ObjetDataTable

End Sub

Private Sub MiseAjour_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MiseAjour.Click

Me.Validate()
Me.BindingSource1.EndEdit()
ObjetDataAdapter.Update(ObjetDataSet, "vehicule")

End Sub

Private Sub BindingNavigatorDeleteItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorDeleteItem.Click

Me.BindingSource1.RemoveCurrent()
End Sub

End Class
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
2
j'ai essayé ton code chez moi et ça marche sans problème...
Qu'est ce qui ne marche pas chez toi?quelle est l'erreur qui surgit lorsque tu exécutes ton application et sois un peu plus claire et concis cette fois?

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0
Messages postés
9
Date d'inscription
samedi 17 juillet 2010
Statut
Membre
Dernière intervention
19 août 2010

1ere solution : quand j'appuie sur le bouton affiche grid, la base affiche son contenu à l'écran, jusque là ça marche. Ensuite j'utilise le bindingnavigator mais la mise à jour ne se fait pas dans la fenêtre des numéros en haut à gauche. Par exemple si j'ai 13 lignes de saisie dans le tableau, la fenêtre de navigation du bindingnavigator affiche jusqu'au numéro 8 et si j'utilise le bindingnavigator, je peux entrer des données mais le compteur ne corresponds jamais avec mes numéros de lignes.

2e solution : si j'utilise le bindingnavigator sans appuyer sur le bouton affiche grid, le bindingnavigator fonctionne mais n'enregistre rien dans la base de données, de plus quand j'appuie sur le bouton mise à jour, cela me déclenche l'erreur suivante :
ObjetDataAdapter.Update(ObjetDataSet, "vehicule") L'exception System.NullReferenceException n'a pas été gérée.
Est ce clair cette fois ci? Car ce n'est pas trop facile à expliquer.
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
2
Pour la 1ère:qu'entends tu par
Ensuite j'utilise le bindingnavigator mais la mise à jour ne se fait pas dans la fenêtre des numéros en haut à gauche. Par exemple si j'ai 13 lignes de saisie dans le tableau, la fenêtre de navigation du bindingnavigator affiche jusqu'au numéro 8 et si j'utilise le bindingnavigator, je peux entrer des données mais le compteur ne corresponds jamais avec mes numéros de lignes.

N'as tu pas 2 différents bindingsource?parce que si c'est le même bindingsource alors il n'y aucune raison pour que ça diffère...
Essaie de mettre un lien vers une image de ton application pendant l'exécution,cela me permettra de mieux comprendre

ObjetDataAdapter.Update(ObjetDataSet, "vehicule") 'L'exception System.NullReferenceException n'a pas été gérée.

c'est pourtant clair,ça veut dire que tu insères une valeur nulle dans l'un des champs de ta base de données alors que tu ne le devrais pas...alors vérifie tes valeurs avant d'appuyer sur ton bouton.

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0