[vb.net] Modifier un enregistrement dans un dataGrid [Résolu]

Messages postés
40
Date d'inscription
mardi 12 octobre 2004
Dernière intervention
13 juillet 2007
- 12 janv. 2006 à 10:29 - Dernière réponse :
Messages postés
40
Date d'inscription
mardi 12 octobre 2004
Dernière intervention
13 juillet 2007
- 12 janv. 2006 à 16:10
Bonjour à tous,

Je développe en vb.net dans le cadre de mon stage
Je liste des clients dans un datagrid de ma Form4. Pour ajouter des enregistrements dans mon datagrid aucun problème...
Par contre je voudrais pouvoir modifier les données de mes clients (mail, tel....)
Pour cela je clique sur un élément de mon datagrid puis sur un bouton de commande 'Modifier' . Je récupère alors toutes mes données dans les textbox d'une autre form (Form5)
Je voudrais alors qu'en modifiant une donnée elle se mette à jour dans mon datagrid.

Le problème c'est que je met toujours à jour le premier quelque soit l'élément que je sélectionne dans mon datagrid ...

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'Initialisation de la chaîne de paramètres pour la connexion
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source= " & Application.StartupPath & "" & "chequeAlsace.mdb;"

'Initialisation de la chaîne contenant l'instruction SQL
strsql = "SELECT Particulier.* FROM Particulier"

'Instanciation d'un Objet Connexion
Connection = New OleDbConnection

'Donner à la propriété ConnectionString les paramètres de connexion
Connection.ConnectionString = strConn

'Ouvrir la connexion
Connection.Open()

'Instancier un objet Commande
ObjetCommand = New OleDbCommand(strsql)

'Instancier un objet Adapter
MonAdapter = New OleDbDataAdapter(ObjetCommand)

'initialiser l'objet Command
ObjetCommand.Connection() = Connection

'Avec l'aide de la propriété Fill du DataAdapter charger le DataSet
MonAdapter.Fill(MonDataSet, "Particulier")

'Mettre dans un Objet DataTable une table du DataSet
ObjetDataTable = MonDataSet.Tables("Particulier")

RowNumber = Form4.DataGrid1.CurrentRowIndex + 1
' Extraire l'enregistrement courant
ObjetDataRow = MonDataSet.Tables("Particulier").Rows(RowNumber)

'Modifier les valeurs des champs en récupérant le contenu des TextBox
'ObjetDataRow("NumCientP") = Form4.DataGrid1.CurrentRowIndex + 1
ObjetDataRow("CivilCliP") = cbCivil.Text
ObjetDataRow("NomCliP") = txtNomCli.Text
ObjetDataRow("PrenomCliP") = txtPrenomCli.Text
ObjetDataRow("AdrCliP") = txtAdrCli.Text
ObjetDataRow("CompAdrCliP") = txtCompAdrCli.Text
ObjetDataRow("CPCliP") = txtCPCli.Text
ObjetDataRow("VilleCliP") = txtVilleCli.Text
ObjetDataRow("TelCliP") = txtTelCli.Text
ObjetDataRow("FaxCliP") = txtFaxCli.Text
ObjetDataRow("MailCliP") = txtMailCli.Text

'Pour modifier les valeurs changées dans le DataAdapter
ObjetCommandBuilder = New OleDbCommandBuilder(MonAdapter)

'Mise à jour
MonAdapter.UpdateCommand = ObjetCommandBuilder.GetUpdateCommand
MonAdapter.Update(MonDataSet, "Particulier")

'On vide le DataSet et on le 'recharge' de nouveau.
MonDataSet.Clear()
MonAdapter.Fill(MonDataSet, "Particulier")
ObjetDataTable = MonDataSet.Tables("Particulier")

Me.Hide()
Form4.Show()
End Sub

Merci d'avance ...
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
13
Date d'inscription
jeudi 27 mars 2003
Dernière intervention
10 avril 2006
- 12 janv. 2006 à 13:56
3
Merci
dans ton form4 declare une variable public:
public intRowNumber as integer

et avant l ouverture de ton formulaire de modification de affecte la valeur
intRowNumber =Form4.DataGrid1.CurrentRowIndex + 1

ensuite dans ton formulaire de modif tu pourras faire
RowNumber = intRowNumber

Ca devrait fonctionner

Merci fduchamp 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Messages postés
13
Date d'inscription
jeudi 27 mars 2003
Dernière intervention
10 avril 2006
- 12 janv. 2006 à 12:22
0
Merci
Bonjour,

je te conseil de passer par le debugage de l application et de verifier ce que te renvois cette ligne:
RowNumber = Form4.DataGrid1.CurrentRowIndex + 1
je pense que dans RowNumber tu dois avoir 1
si c'est le cas je te conseil de memoriser dans une variable publique la valeur de Form4.DataGrid1.CurrentRowIndex + 1 au moment ou tu cliques sur la ligne a modifier ou alors sur l evenement du bouton Modifier.
Messages postés
40
Date d'inscription
mardi 12 octobre 2004
Dernière intervention
13 juillet 2007
- 12 janv. 2006 à 12:37
0
Merci
En fait il me renvoie '0' pour RowNumber soit -1 en fait à cause du +1 ....
Messages postés
40
Date d'inscription
mardi 12 octobre 2004
Dernière intervention
13 juillet 2007
- 12 janv. 2006 à 12:38
0
Merci
En fait il me renvoie '0' pour RowNumber soit -1 en fait à cause du +1 ....
Messages postés
40
Date d'inscription
mardi 12 octobre 2004
Dernière intervention
13 juillet 2007
- 12 janv. 2006 à 13:08
0
Merci
A priori ça fonctionne sur la même form mais pas d'une form a l'autre ..... bizarre .... Il ne retient pas la valeur de rownumber...
Messages postés
40
Date d'inscription
mardi 12 octobre 2004
Dernière intervention
13 juillet 2007
- 12 janv. 2006 à 16:10
0
Merci
merci de ton aide fduchamp ....

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.