olibara
Messages postés666Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 mars 2010
-
18 févr. 2008 à 13:47
olibara
Messages postés666Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 mars 2010
-
19 févr. 2008 à 19:08
Bonjour
Soit ma question erst tellement idiorte que personne ne veut y repondre soit personne ne connait la reponse
Je cherche un petit tutorial simple me permetant de comprendre les concept élémentaire de mise a jour d'une Table Mysql a partir d'un datagridview
J'utilise MysqlConnector-net 2.0...
Pour la connexion la requel et le remplissage du dgv j'ai trouvé sans trop de probleme (voir plus bas)
MAIS apres l'assignation du datasource : faut -il fermer la connexion ???
Si l'utilisateur modifie ou ajoute une row dans le dgv : comment faire l'update ?
Merci pour toute aide éventuelle si quelqu'un connais un peu cela ...
olibara
Messages postés666Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 mars 20106 19 févr. 2008 à 19:08
Bonjour
Comme tout le monde semble muet pour toute qustion d'update de DB je vais fournir le resultat de mes essais-erreurs, cela servira peut-etre a d'autres .....
Comment mettre a jour une DB a partir d'un DataGridView ?
Le datasource du DataGridView est un dataset rempli avec un datadapter
Premiere chose :
Utiliser le dataset de de travail (le datasource du datagridview) pour remplir un AUTRE dataset avec les modifications demandées
ch = dsAddr.GetChanges();
(ceci chargera un dataset (ch) avec tous les rows modifies et leurs status)
J'ai été surpris de voir que les rows déletés apparaisaient sans data visible (avec le debugger) mais la methode update se débrouille tres bien avec
Cependant Getchange() peut etre appelé avec un type de modification souhaité
Voici un exemple pour l'operation Delete :
DataSet ch = new DataSet(); // declaration du dataset temporaire pour charger les rows a traiter
ch = dsAddr.GetChanges(DataRowState.Deleted); // chargement des rows deleté
// construction de la commande SQL de delete
adaAddr.DeleteCommand = new MySqlCommand("DELETE FROM address WHERE addrID=?addrID", conn);
// construction du parametrage de la commande delete
adaAddr.DeleteCommand.Parameters.Add("?addrID", MySqlDbType.Int32, 11, "addrID").SourceVersion = DataRowVersion.Original;
// execution du delete
adaAddr.Update(ch);
// ET VOILA
// J'ai peut etre réveillé ici quelques spécialiste qui pousseront des cris d'horreurs pour dire que c'est pas comme ca qu'il faut faire mais tant mieux car jusqu'ici : Silence Radio ........
En tout cas ca marche
Pour UPDATE et INSERT je vais encore investiguer mais il semble que la construction de la commande soit plus fastitieuse car il faut enumerer tous les champs...
A suive ...