Mise à jour à l'aide de MySqlDataAdapter ne fonctionne pas
Je suis en train d'utiliser MySqlDatAdapter de mettre à jour une table MySql. Mais, le tableau ne jamais les mises à jour!!! Je l'ai fait avant, mais avec SQL server. Est-il autre chose qui est spécifique à MySql qui me manque dans mon code?
DataTable myTable = new DataTable("testtable");
MySqlConnection mySqlCon = new MySqlConnection(ConfigurationManager.ConnectionStrings["DBConStr"].ConnectionString);
MySqlCommand mySqlCmd = new MySqlCommand("SELECT * FROM testtable WHERE Name = 'Tom'");
mySqlCmd.Connection = mySqlCon;
MySqlDataAdapter adapter = new MySqlDataAdapter(mySqlCmd);
MySqlCommandBuilder myCB = new MySqlCommandBuilder(adapter);
adapter.UpdateCommand = myCB.GetUpdateCommand();
mySqlCon.Open();
adapter.Fill(myTable);
myTable.Rows[0]["Name"] = "Was Tom";
myTable.AcceptChanges();
adapter.Update(myTable);
mySqlCon.Close();
Grâce
OriginalL'auteur usp | 2013-03-06
Vous devez vous connecter pour publier un commentaire.
Supprimer
myTable.AcceptChanges()
avant la mise à jour. Othwerwise qui va définir toutes les lignesRowState
àUnchanged
, d'où le DataAdapter ne saura pas que quelque chose a été changé.adapter.Update(myTable)
appelleraAcceptChanges
lui-même après la mise à jour est terminée.Donc...
AcceptChanges
depuis son nom l'indique quelque chose de souhaitable avant une mise à jour 😉vous avez raison, si je ne le savais pas. Mais j'étais juste ne pas faire attention à cette ligne que j'ai copié le code à partir d'un autre projet, qui est à l'aide d'un DataTable avec GridView. En tout cas, merci pour l'aide.
OriginalL'auteur Rango
Mon certains on besoin de chercher la solution suivante; Dans d'autres, le scénario de personnes ont besoin d'autre solution. Même de Ne pas faire la manipulation avec Datatable lorsque vous Déboguez au moment de l'Exécution de ce genre,
Vous pouvez obtenir les Données Selon les commandes ci-dessus. Afin de mieux essayez de déboguer avant de passer à la table de données à mettre à jour ou de l'insertion ou de la suppression de la commande.
Si myTable.GetChanges() retourne la valeur null, alors vous pouvez SetAdded() ou SetModified() revenir à votre DataTable;
OriginalL'auteur Magesh