Help ! comment faire un update de la base en saisissant sur un datagrid
kikoff
Messages postés10Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention 3 septembre 2004
-
21 juil. 2004 à 12:21
Arthenius
Messages postés1182Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 6 septembre 2011
-
12 janv. 2005 à 17:05
ben voila je resume mon probleme :
j'ai un projet en winform avec un datagrid
je charge ce datagrid avec un dataset (ds) qui est construit de la maniere suivante :
chargement d'une table "fonction" dans ds par un select sur la base
chargement d'une table "composant" dans ds par un select sur la base
chargement d'une table "borne" dans ds par un select sur la base
ensuite je fait des datarelation pour liee fonction(parent) et composant (enfant) , et datarelation pour liee composant(parent) et borne(enfant)
tout ceci me fait apparaitre un jolie datagrid avec une navigation entre les tables (c'est deja pas mal ;-))
maintenant je voudrai que l'utilisateur puisse modifier des valeurs en saisissant directement sur le datagrid (avec message de confirmation bien entendu..) et que cette modification (si confirmation OK) puisse etre mise a jour sur la base de donnée
et bien entendu sur le datagrid.
je pense que j'ai bien resume mon affaire lol ! . mais le hic c'est je ne sais pas trop comment mis prendre : comment recupere la saisie , comment updater la base , et surtout updater mon dtagrid
voila si quelqu'un pourrai me donner des indication je lui serai reconnaissant.
tmcuh
Messages postés458Date d'inscriptiondimanche 22 décembre 2002StatutMembreDernière intervention18 avril 2009 12 janv. 2005 à 16:30
marche si les updatecommand insertcommand deletecommand et selectcommand du datagrid sont renseigné...
Comment tu renseigne ses command au datagrid? moi je l'applique à mon projet car pour l'instant l'utilisateur modifier le datagrid et ensuite je met à jour la base de donnée :
this.dataGrid1.Update();
DataTable ds = (DataTable) this.dataGrid1.DataSource ; //rempli le dataset (transformer en datatable)
this.oleDbDataAdapter1.Update (ds);
// met à jour la bdd
ça marche pas encore mais j'espère que ton aide pourra me faire avancer.
Arthenius
Messages postés1182Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 6 septembre 201114 12 janv. 2005 à 16:41
en fait c pas au niveau du datagrid qu'il faut renseigner tout ca mais au niveau du dataadapteur.InsertCommand = new OledbCommand(.........);
dataadapteur.UpdateCommand = new OledbCommand(.........);
dataadapteur.DeleteCommand = new OledbCommand(.........);
dataadapteur.SelectCommand = new OledbCommand(.........);
dataadapteur.fill(ds, "Matable");
..........
qd maj
dataadapteur.Update(ds, "Matable");
jette deja un oeuil sur le source d'exemple que j'ai sur code sources...
ca devrait t'aider a comprendre certain truc...
Arthenius
"Il n'y a pas de mauvais développeurs,...
mais uniquement de mauvais utilisateurs..."
tmcuh
Messages postés458Date d'inscriptiondimanche 22 décembre 2002StatutMembreDernière intervention18 avril 2009 12 janv. 2005 à 16:57
D'après ce que j'ai pu voir, tu utilise des controles type Textbox plutot que le datagrid, donc m'interresse pas... sinon tu créer tes requetes à la main... oui mais seulement moi je fais ça avec une base access donc je créer mon dataadapter directement dans la forme principale et il me génère les requetes d'update, insert, delete... maintenant je vois que tu as mis à la fin du code au dessus... update(ds, "Matable"). désolé pas possible c'est un datatable et 1 seul paramètre du fait qu'il contient tout.
Il veut pas me mettre la base à jour mais j'ai tjrs pas trouvé pourqoui. Mais bon merci de ton aide et de ta patience
Arthenius
Messages postés1182Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention 6 septembre 201114 12 janv. 2005 à 17:05
bon pour les textbox c juste que j'aimle po sasir dans une datagrid...
mais ca change rien au binz...
tu oublie juste tout ce qui est databinding dans l'exemple...
donc toi tu fais un cliquer deplacer de ta table sur ta form...
il te genere donc un dataadapteur bien comme il faut....
tu n'a plus qua generer la source de donne(tu obtiens ton dataset) (menu Donnéees->générer le groupe de données)
tu affecte le dataset a ton datagrid (datasource et datamember)
tu fais un fil du dataset generer
et tu fais un dataadapteur.update(dudatasetgenerer);
et ca devrait etre bon...
Arthenius
"Il n'y a pas de mauvais développeurs,...
mais uniquement de mauvais utilisateurs..."