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

Signaler
Messages postés
10
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
3 septembre 2004
-
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
-
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

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

Artherius
Tu fais comment pour les renseigner sur reference du datagrid?

Amicalement TMCUH
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
12
???

je comprend pas ta question???

Arthenius

"Il n'y a pas de mauvais développeurs,...
mais uniquement de mauvais utilisateurs..."
Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
12
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..."
Messages postés
458
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
18 avril 2009

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

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