Comment connecter le BindingNavigator au datagridview

11chris Messages postés 9 Date d'inscription samedi 17 juillet 2010 Statut Membre Dernière intervention 19 août 2010 - 16 août 2010 à 17:39
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 - 19 août 2010 à 18:24
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.

12 réponses

NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
16 août 2010 à 18:08
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
0
11chris Messages postés 9 Date d'inscription samedi 17 juillet 2010 Statut Membre Dernière intervention 19 août 2010
17 août 2010 à 14:17
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.
0
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
17 août 2010 à 16:31
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
0
11chris Messages postés 9 Date d'inscription samedi 17 juillet 2010 Statut Membre Dernière intervention 19 août 2010
17 août 2010 à 16:41
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
17 août 2010 à 17:26
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
0
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
17 août 2010 à 17:37
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
0
11chris Messages postés 9 Date d'inscription samedi 17 juillet 2010 Statut Membre Dernière intervention 19 août 2010
17 août 2010 à 17:45
cela m'affiche les lignes en double et cela n'enregistre pas dans la base de données.
0
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
17 août 2010 à 18:27
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
0
11chris Messages postés 9 Date d'inscription samedi 17 juillet 2010 Statut Membre Dernière intervention 19 août 2010
18 août 2010 à 15:34
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
0
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
18 août 2010 à 19:14
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
0
11chris Messages postés 9 Date d'inscription samedi 17 juillet 2010 Statut Membre Dernière intervention 19 août 2010
19 août 2010 à 14:11
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.
0
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
19 août 2010 à 18:24
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
0
Rejoignez-nous