DataAdapter et DataGridView
Bonjour à tous
Il y a quelque chose que je ne comprend vraiment dans le fonctionnement du dataset.
Voilà ce que j'ai fait pour le moment :
- J'ai une base de données MySql stockée sur notre serveur entreprise. J'ai créer un DataSet via l'assistant que j'ai nommé savDataSet. Dans ce Dataset je retrouve bien tous les champs de la table nommée parc_machine_sav.
- Dans le concepteur du DataSet j'ai fais clique de droit pour ajouter une nouvelle requète. Où là je fais un Select seulement sur les colonnes qui m'interresent avec la condition @idclient.
- Je voudrais ensuite ajouter ce DataAdapter (GetDatabyClient) à un DataGridView.
-J'ai ajouter à mon formulaire un DataGridView vierge que j'ai nommé "DGVMachineClient".
- Au changement de valeur d'un autre DataGridView (liste des clients) j'ai écrit le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Private Sub ClsClientsDataGridView_SelectionChanged(sender As System.Object, e As System.EventArgs) Handles ClsClientsDataGridView.SelectionChanged
Dim machineTableAdapter As New savDataSetTableAdapters.parc_machine_savTableAdapter()
Dim idclient As Integer
idclient = ClsClientsDataGridView.CurrentCell.Value
machineTableAdapter.ClearBeforeFill = True
machineTableAdapter.FillByClient(SavDataSet.parc_machine_sav, idclient)
DGVMachineClient.DataSource = machineTableAdapter.GetDataByClient(idclient)
End Sub |
lorsque j'execute j'ai une erreur sur la ligne
Code:
machineTableAdapter.FillByClient(SavDataSet.parc_machine_sav, idclient)
Citation:
Erreur : L'exception ConstraintException n'a pas été gérée.
Impossible d'activer les contraintes. Une ou plusieurs lignes contiennent des valeurs qui violent les contraintes de type non null, unique ou clé externe.
Pour info lorsque je crée une requète sans décocher les colonnes qui ne m'intéressent pas et en ajoutant seulement le WHERE et le ORDER BY, ça fonctionnement correctement.
Ma question pourquoi lorsque je décoche des colonnes qui ne m'intéressent pas dans ma requète ça ne fonctionne plus.
Si c'est normal comment je dois écrire la suite de mon code pour voir dans mon DataGridview les colonnes qui m'intéressent non pas toutes les colonnes.
Merci d'avance pour votre aide.
Mise à jour base de données
Bon après plusieurs recherches j'ai enfin réussi à afficher dans mon DataGridView les informations qui m'intéressent.
Maintenant je voudrais mettre à jour ma base de données MySQL, et là je galère...:cry:
Je vous explique : Dans mon DataGridview j'affiche 3 colonnes de ma table parc_machine_sav (Type de machine, n° de série et revendue)
Sur le coté de mon datagridview j'ai mis d'autre champs de ma table. Dans source de données, dans savDataSet et dans la table parc_machine_sav j'ai fait glisser les champs qui m'interressaient sur mon formulaire.
J'ai mis un bouton modifié, qui lorsque je clique dessus me verrouille l'enregistrement de ma table (pour que les autres utilisateurs sachent qu'il est en cours de modification).
Je modifie ma valeur dans une cellule (ex: date de garantie).
Et lorsque j'appuie sur un bouton valide, ça me met à jour la base de donnée sur mySQL.
C'est là que je bloque. Je ne sais pas par où commencer.
Je suppose qu'au clique du bouton modifier, je dois ouvrir la connexion à la base, mais après je sais plus.
Pourriez-vous m'indiquer la marche à suivre ou auriez-vous des liens de documentations ?
Merci d'avance.