Help ! comment faire un update de la base en saisissant sur un datagrid

kikoff Messages postés 10 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 3 septembre 2004 - 21 juil. 2004 à 12:21
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Derniè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.

merci d'avance

8 réponses

Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
21 juil. 2004 à 14:18
datagrid.update()

marche si les updatecommand insertcommand deletecommand et selectcommand du datagrid sont renseigné...

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
tmcuh Messages postés 458 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 18 avril 2009
12 janv. 2005 à 16:17
Artherius
Tu fais comment pour les renseigner sur reference du datagrid?

Amicalement TMCUH
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
12 janv. 2005 à 16:25
???

je comprend pas ta question???

Arthenius

"Il n'y a pas de mauvais développeurs,...
mais uniquement de mauvais utilisateurs..."
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
12 janv. 2005 à 16:28
j'ai un exemple d'utilisation du datagrid et autre dans mes sources sur ce site....

http://www.csharpfr.com/listeauteur2.aspx?TID=219750

Arthenius

"Il n'y a pas de mauvais développeurs,...
mais uniquement de mauvais utilisateurs..."
0

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

Posez votre question
tmcuh Messages postés 458 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 18 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.

Amicalement TMCUH
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
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..."
0
tmcuh Messages postés 458 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 18 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

Amicalement TMCUH
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
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..."
0
Rejoignez-nous