2009-08-04 9 views
0

J'ai besoin de mettre à jour mes données existantes dans la base de données mysql.Mise à jour des données existantes à l'aide de DataRow C#

J'écris comme ce code;

 String _id = lbID.Text; 
     dsrm_usersTableAdapters.rm_usersTableAdapter _t = new dsrm_usersTableAdapters.rm_usersTableAdapter(); 
     dsrm_users _mds = new dsrm_users(); 
     _mds.EnforceConstraints = false; 

     dsrm_users.rm_usersDataTable _m = _mds.rm_users; 

     _t.FillBy4(_m, _id); 
     if(_m.Rows.Count >0) 
     { 

      DataRow _row = _m.Rows[0]; 

      _row.BeginEdit(); 

      _row["username"] = txtUserName.Text; 

      _row.EndEdit(); 

      _row.AcceptChanges(); 

      _t.Update(_m); 

     } 

Mais rien ne change mes données existantes. Quel est le problème?

Répondre

-2

mise à jour nécessite une collection DataRow UpdateCommand lorsqu'il est passé valide avec les lignes modifiées

Oui je déplace la AccesptChange() après la mise à jour bu maintenant son donne cette erreur

mise à jour nécessite un UpdateCommand valide lorsqu'il est passé collection DataRow avec modifiées lignes

Mais maintenant le problème est, j'utilise MySQL et je ne peux pas Wrie UpdateCommand, VS2008 n'accepte pas la commande SQL. Supprimer automatiquement toutes les commandes SQL. Je ne comprends pas le problème. Alors est-ce que vous avez maintenant une autre façon sans utiliser la commande SQL (UpdateCommand)?

1

Je pense que le problème est que vous appelez DataRow.AcceptChanges() avant d'appeler DbDataAdapter.Update(). AcceptChanges va mettre le statut de la datarow à "orignal" (ou "non modifié" - je ne me souviens pas maintenant). Essayez de déplacer l'appel à AcceptChanges après la mise à jour.