cs_Botanique
Messages postés113Date d'inscriptionvendredi 21 janvier 2005StatutMembreDernière intervention 6 mars 2008
-
23 sept. 2005 à 15:21
cs_Botanique
Messages postés113Date d'inscriptionvendredi 21 janvier 2005StatutMembreDernière intervention 6 mars 2008
-
23 sept. 2005 à 17:34
Bonjour,
j'ai un gros problème de mise à jour de ma base de données (une table principale et deux tables liées). Sur un WinFrom, j'ai des textbox et deux datagrids. Lorsque je change les valeurs des TextBox et que j'ajoute une ligne, j'appuie sur un bouton d'enregistrement mais seule la table principale est mise à jour.
Voici le code que j'utilise :
Private Sub BtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSave.Click
Dim BotaCommandBuilder, VernCommandBuilder, SynCommandBuilder As OleDbCommandBuilder
Dim LigneBota As DataRow
cs_Botanique
Messages postés113Date d'inscriptionvendredi 21 janvier 2005StatutMembreDernière intervention 6 mars 2008 23 sept. 2005 à 16:20
J'ai créé les DataAdapter (un par table) avec l'assistant de VS 2003. Par contre comme tu le dis, il est vrai que
Me.OleDbDABotanique.Update(Me.DtsTest1, "Table_botanique")
ne mets à jour qu la table "Table_botanique", c'est pourquoi, en dessous de cette instruction, il y a :
Me.OleDbDAVern.Update(Me.DtsTest1, "Table_nom_vernaculaire")
Me.OleDbDASyn.Update(Me.DtsTest1, "Table_synonyme")
Mais ces instructions ne fonctionnent pas. Voilà pourquoi je demande de l'aide.
cs_Botanique
Messages postés113Date d'inscriptionvendredi 21 janvier 2005StatutMembreDernière intervention 6 mars 2008 23 sept. 2005 à 16:34
justement, l'idée m'est venue aussi et lorsque j'affiche le schéma et que je modifie les règles de mise à jour, que je les passe de "en cascade" à "(par défaut)", la mise à jour se fait sans problème.
Peux-tu m'expliquer pourquoi?
Merci de ton aide.
Botanique
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Botanique
Messages postés113Date d'inscriptionvendredi 21 janvier 2005StatutMembreDernière intervention 6 mars 2008 23 sept. 2005 à 16:54
Excuse moi pour ce manque de précision. Sous VS 2003, tu fais afficher le schéma des relation (fichier .xsd). De là tu as toutes les tables de ton DataSet ainsi que leurs relation. En sélectionnant une relation, avec le menu contextuel, tu choisi "modifier la relation". Un formulaire apparaît et là, tout en bas, tu peux choisir (par menu déroulant) les règles de mise à jour, les règles de suppressions et les règles d'acceptation/rejet.
Dans les règles de mise à jour, j'avais choisi "en cascade" et ma mise à jour ne marchais pas. Puis en la remplaçant pas "(par défaut)", la mise à jour s'effectue.
cs_69chris
Messages postés318Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention30 décembre 20051 23 sept. 2005 à 17:25
Oui, tu es clair.
Par contre, côté objet je ne sais pas à quoi à ça correspond. Donc quel est l'impact sur la classe.
Regarde du coté de la classe généré par VS pour ton DataSet. Pour
"voir" cette classe, dans l'explorateur de solution, sélectionne
"Afficher tous les fichiers" (barre de menu en haut de l'explo de
solution). Tu déplois au niveau de ton DataSet et là il doit y avoir
une classe VB générée en automatique par VB. Faut voir dans cette
classe les modifs entre les deux options.