[C#]DataGridView et MàJ

DataGridView et MàJ [C#] - C#/.NET managed - Programmation

Marsh Posté le 15-09-2008 à 10:14:07    

Bonjour,
 
Question basique pour un newbie dans ce domaine :
J'affiche sans soucis des données provenant d'une base SQL Server 2005 dans un DataGridView.
Peux ton les modifier directement et répercuter les modifications dans la base ?
Si oui comment ?
 
J'ai beau surfer je ne vois pas de réponse à ma question triviale, et mes essais sont infructueux (tout ce que je modifie disparait, pas de commit ? )
 
Merci  :)
 
J'ai tenté un truc comme ca mais il me manque la signification de chaque partie, et ca ne marche pas là.. :
operationsTableAdapter1.Update((DataTable)bindingSource1.DataSource);


Message édité par DMSilencer le 15-09-2008 à 10:20:08
Reply

Marsh Posté le 15-09-2008 à 10:14:07   

Reply

Marsh Posté le 15-09-2008 à 11:36:13    

En gros :
 

Code :
  1. SqlCommand cmd = ...;
  2.  
  3. // Tu bidouilles ta cmd pour avoir la requête SELECT portant sur une table en évitant les jointures, et en récupérant bien la PK
  4.  
  5. SqlDataAdapter da = new SqlDataAdapter(cmd);
  6. SqlCommandBuilder cb = new SqlCommandBuild(cmd);
  7.  
  8. da.InsertCommand = cb.GetInsertCommand();
  9. // idem avec update et delete
  10.  
  11. DataTable dt = new DataTable();
  12. da.Fill(dt);
  13.  
  14. MaDataGrid1.DataSource = dt;


=> Et sur le "save" de ta form, tu fais un da.Update()
 
(en gros, j'ai pas le code en tête et je suis en train d'installer Oracle chez un client, pas trop le temps de te faire un exemple complet)


Message édité par MagicBuzz le 15-09-2008 à 17:10:17
Reply

Marsh Posté le 15-09-2008 à 11:47:19    

Merci, mais j'ai eu le défaut (peut être) d'utiliser les facilités, les automatismes de l'environnement de C# 2008.
Je vais voir le code pour ca.
Ca fait tellement longtemps que je n'ai plus codé, ou alors très peu.. (j'en étais au Pro-C et souvent des SGBD comme Oracle (7 ou 8) :) )

Reply

Marsh Posté le 15-09-2008 à 12:26:24    

Ben là y'a quand même pas grand chose à coder hein ;)
 
10 à 20 lignes en 5 minutes quand en C il faut 500 lignes et 3 jours ;)

Reply

Marsh Posté le 15-09-2008 à 13:11:56    

MagicBuzz a écrit :

Ben là y'a quand même pas grand chose à coder hein ;)
 
10 à 20 lignes en 5 minutes quand en C il faut 500 lignes et 3 jours ;)


 
C'est sur mais je me rends compte que maintenant il faut avoir une sacré bibliothèque à la place du cerveau pour retenir toutes les classes utiles et comment les utiliser..

Reply

Marsh Posté le 15-09-2008 à 13:33:48    

SqlDataAdapter c'est plutot SqlCeDataAdapter chez moi.
SqlCommandBuild => SqlCeCommand
etc..
 
Et le module dbRegieDataSet.Designer.cs fait 1542 lignes... (dbRegie c'est le nom de la db..)
 
 
Le Fill se présente ainsi :
this.operationsTableAdapter1.Fill(this.dbRegieDataSet.Operations);
 
Pour l'update apparemment ca devrait être çà :
this.operationsTableAdapter1.Update(this.dbRegieDataSet.Operations);


Message édité par DMSilencer le 15-09-2008 à 13:37:48
Reply

Marsh Posté le 15-09-2008 à 15:34:24    

C'est bien ça, c'est bon je suis sur les rails.
Merci pour le coup de pouce.

Reply

Marsh Posté le 15-09-2008 à 17:08:09    

Je pige pas trop pkoi tu passes par le namespace SqlCe si tu tapes dans une base SQL Server 2005... SqlCe c'est pour faire du SQL Server Compact Edition (pour Windows Mobile typiquement...) :heink:
 
(m'enfin si ça marche c'est le principal :whistle:)

Message cité 1 fois
Message édité par MagicBuzz le 15-09-2008 à 17:08:44
Reply

Marsh Posté le 15-09-2008 à 17:09:40    

DMSilencer a écrit :


 
C'est sur mais je me rends compte que maintenant il faut avoir une sacré bibliothèque à la place du cerveau pour retenir toutes les classes utiles et comment les utiliser..


t'as rien à retenir. juste grossomodo dans quel namespace founier quand t'as besoin d'un truc. après l'intellisense de visual studio fait le travail pour toi ;)


Message édité par MagicBuzz le 15-09-2008 à 17:09:53
Reply

Marsh Posté le 16-09-2008 à 08:41:37    

MagicBuzz a écrit :

Je pige pas trop pkoi tu passes par le namespace SqlCe si tu tapes dans une base SQL Server 2005... SqlCe c'est pour faire du SQL Server Compact Edition (pour Windows Mobile typiquement...) :heink:
 
(m'enfin si ça marche c'est le principal :whistle:)


 
Ce n'est pas moi mais le système de C# 2008 qui me construit ça lorsque j'utilise visual studio. : je crée ma db (sqlserver 2005 express) et je met mon datagridview, je le paramètre pour lui affecter la bonne table, et puis j'ai du code que je dois compléter pour que ca puisse vivre.


Message édité par DMSilencer le 16-09-2008 à 08:42:13
Reply

Marsh Posté le 16-09-2008 à 08:41:37   

Reply

Marsh Posté le 16-09-2008 à 09:25:35    

Sauf qu'à mon avis, t'as créé une base SQL Server 2005 CE et non SQL Server 2005 Express. Parceque le namespace SqlCe ne sert clairement pas à se connecter à SQL Server 2005 Express ;)

Reply

Marsh Posté le 16-09-2008 à 09:32:08    

Je n'avais pas beaucoup de choix :
Base Access
SQL Server
SQL Server Compact 3.5

Reply

Marsh Posté le 16-09-2008 à 10:07:34    

A mon avis t'as ripé et cliqué sur SQL Server Compact 3.5

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed