begin process at 2008 08 29 20:37:11
1 233 885 membres
407 nouveaux aujourd'hui
14 294 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Update Mysql Table from csharp datagridview [ MySQL / Requêtes ] (olibara)

Update Mysql Table from csharp datagridview le 18/02/2008 13:47:13

olibara

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 ...

Voici ma connexion et la requete de base

      string MyConString = "server=localhost;port=3306;uid=root;database=recutex;";
      string selectcmd;

      conn.ConnectionString = MyConString;
      conn.Open();

      MySqlDataAdapter adaTour = new MySqlDataAdapter();
      selectcmd = "SELECT distinct dag,chauffeurID FROM `tours`";
      adaTour.SelectCommand = new MySqlCommand(selectcmd, conn);

      // On définit en lieu de stockage et on le rempli avec le résultat de la requête
      DataSet dsTour = new DataSet();
      adaTour.Fill(dsTour);

      dgv_Tour.DataSource = dsTour.Tables[0];


 


Re : Update Mysql Table from csharp datagridview le 19/02/2008 19:08:33

olibara

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 ...



Classé sous : table, mysql, connexion, from, update

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS