OVH Cloud OVH Cloud

Je n'arrives pas à mettre à jour ma base

6 réponses
Avatar
Philippe Cazaux-Moutou
Bonjour

j ai une datagridView un compo BindingSource, DataAdaptateu, Dataset

je veux supprimer des lignes dans ma DataGridView, et je fais donc ca

bsFilms.RemoveCurrent();
dsFilms.AcceptChanges();

mais quand je reviens dans mon appli les lignes sont toujours la

comment mettre a jour ma bdd ??

merci

6 réponses

Avatar
Fred
Dans : news:4458fcc0$0$19697$,
Philippe Cazaux-Moutou disait :
Bonjour



Bonjour,

j ai une datagridView un compo BindingSource, DataAdaptateu, Dataset

je veux supprimer des lignes dans ma DataGridView, et je fais donc ca

bsFilms.RemoveCurrent();
dsFilms.AcceptChanges();



Il manque :
LeDataAdapter.Update(dsFilms)

PS : Abonne-toi au groupe m.p.f.dotnet.adonet pour les problème de
données.


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
Philippe Cazaux-Moutou
Fred a écrit :
Dans : news:4458fcc0$0$19697$,
Philippe Cazaux-Moutou disait :
Bonjour



Bonjour,

j ai une datagridView un compo BindingSource, DataAdaptateu, Dataset

je veux supprimer des lignes dans ma DataGridView, et je fais donc ca

bsFilms.RemoveCurrent();
dsFilms.AcceptChanges();



Il manque :
LeDataAdapter.Update(dsFilms)

PS : Abonne-toi au groupe m.p.f.dotnet.adonet pour les problème de données.





j ai rajouté, j ai donc ca

bsFilms.RemoveCurrent();
dsFilms.AcceptChanges();
dbDAFilms.Update(dsFilms);

ca ne change rien
mais je précise ma base est fermée, j ai suivi la doc (je débutes)
j ouvre ma base
je rempli le dataset
je ferme ma base

voici mon code d ouverture

// Ouverture de la connection
string sConnection =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
_mainForm._PCMAppli.doPathBDD() +
";Persist Security Info=True";
dbConnection.ConnectionString = sConnection;
dbConnection.Open();
// affectation du SQL
dbDAFilms.SelectCommand.CommandText = sSQL;
// Purge du dataset
dsFilms.Clear();
// Remplissage du dataset
dbDAFilms.Fill(dsFilms);
// fermeture de la connection
dbConnection.Close();
Avatar
Fred
Dans : news:44590628$0$20165$,
Philippe Cazaux-Moutou disait :

j ai rajouté, j ai donc ca

bsFilms.RemoveCurrent();
dsFilms.AcceptChanges();
dbDAFilms.Update(dsFilms);

ca ne change rien



Je ne suis pas certain que le AcceptChanges soit nécessaire.
(mais ce n'est probablement pas le problème)

Il semblerait que la base soit un fichier. Est-il intégré dans la
solution ? Quelles sont ses propriétés ? Il est possible que lors de
l'exécution, ce soit une copie qui est utilisée. Copie peut-être écrasée
au build suivant avec l'original.

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
Philippe Cazaux-Moutou
Fred a écrit :
Dans : news:44590628$0$20165$,
Philippe Cazaux-Moutou disait :

j ai rajouté, j ai donc ca

bsFilms.RemoveCurrent();
dsFilms.AcceptChanges();
dbDAFilms.Update(dsFilms);

ca ne change rien



Je ne suis pas certain que le AcceptChanges soit nécessaire.
(mais ce n'est probablement pas le problème)

Il semblerait que la base soit un fichier. Est-il intégré dans la
solution ? Quelles sont ses propriétés ? Il est possible que lors de
l'exécution, ce soit une copie qui est utilisée. Copie peut-être écrasée
au build suivant avec l'original.




Merci

ma base est une base access, car je suis avec le C# express,
par contre on regardant un peu partout j ai réussi, mais peux tu me dire
si ce que je fais est bon
j ai mis en commentaire le AcceptChanges
par contre je voudrais savoir pour les transactions ?? comment coder ca ??

merci

try
{
// Suppression de la ligne dans la datagrid
bsFilms.RemoveCurrent();
//dsFilms.AcceptChanges();

// ouverture de la base
dbConnection.Open();
//OleDbTransaction tx =
dbConnection.BeginTransaction();
dbConnection.BeginTransaction();
// MAJ des données
//tx.Commit();
dbDAFilms.Update(dsFilms);
//tx.Dispose();
}
catch (System.Exception updateException)
{
throw updateException;
}
finally
{
// Fermeture de la base
dbConnection.Close();
}
Avatar
Gilles TOURREAU
Dans son message précédent, Philippe Cazaux-Moutou a écrit :
Fred a écrit :
Dans : news:4458fcc0$0$19697$,
Philippe Cazaux-Moutou disait :
Bonjour



Bonjour,

j ai une datagridView un compo BindingSource, DataAdaptateu, Dataset

je veux supprimer des lignes dans ma DataGridView, et je fais donc ca

bsFilms.RemoveCurrent();
dsFilms.AcceptChanges();



Il manque :
LeDataAdapter.Update(dsFilms)

PS : Abonne-toi au groupe m.p.f.dotnet.adonet pour les problème de données.





j ai rajouté, j ai donc ca

bsFilms.RemoveCurrent();
dsFilms.AcceptChanges();
dbDAFilms.Update(dsFilms);

ca ne change rien
mais je précise ma base est fermée, j ai suivi la doc (je débutes)
j ouvre ma base
je rempli le dataset
je ferme ma base

voici mon code d ouverture

// Ouverture de la connection
string sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" +
_mainForm._PCMAppli.doPathBDD() +
";Persist Security Info=True";
dbConnection.ConnectionString = sConnection;
dbConnection.Open();
// affectation du SQL
dbDAFilms.SelectCommand.CommandText = sSQL;
// Purge du dataset
dsFilms.Clear();
// Remplissage du dataset
dbDAFilms.Fill(dsFilms);
// fermeture de la connection
dbConnection.Close();



Il ne faut pas mettre AcceptChanges() !

En effet quand tu modifies des données de ton DataSet, les lignes sont
marquées (RowState) soit comme "Modified", "Delete",...etc.

Ce marquage permet à ton DataAdapter de savoir tout d'abord quel sont
les lignes à modifier et ensuite quel requête appelé (DELETE, INSERT,
..etc)

Si tu appelle AcceptChanges() toutes tes lignes seront marqués comme
"Unchanged" et donc le DataAdpter verra qu'il n'y aucune modification a
apporté...

Normalement tu n'as pas à appeler cette méthode...

Cordialement

--
Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Paul Bacelar
Il vous manque un appel à la méthode commit de la transaction avant la
fermeture de celle-ci (à la fin du try) et l'appel de la méthode rollback
sur le catch des exceptions (un flag de réussite plus un test dans le
finally serait plus robuste).
--
Paul Bacelar
MVP VC++


"Philippe Cazaux-Moutou" wrote in message
news:44590ed6$0$18340$
Fred a écrit :
Dans : news:44590628$0$20165$,
Philippe Cazaux-Moutou disait :

j ai rajouté, j ai donc ca

bsFilms.RemoveCurrent();
dsFilms.AcceptChanges();
dbDAFilms.Update(dsFilms);

ca ne change rien



Je ne suis pas certain que le AcceptChanges soit nécessaire.
(mais ce n'est probablement pas le problème)

Il semblerait que la base soit un fichier. Est-il intégré dans la
solution ? Quelles sont ses propriétés ? Il est possible que lors de
l'exécution, ce soit une copie qui est utilisée. Copie peut-être écrasée
au build suivant avec l'original.




Merci

ma base est une base access, car je suis avec le C# express,
par contre on regardant un peu partout j ai réussi, mais peux tu me dire
si ce que je fais est bon
j ai mis en commentaire le AcceptChanges
par contre je voudrais savoir pour les transactions ?? comment coder ca ??

merci

try
{
// Suppression de la ligne dans la datagrid
bsFilms.RemoveCurrent();
//dsFilms.AcceptChanges();

// ouverture de la base
dbConnection.Open();
//OleDbTransaction tx =
dbConnection.BeginTransaction();
dbConnection.BeginTransaction();
// MAJ des données
//tx.Commit();
dbDAFilms.Update(dsFilms);
//tx.Dispose();
}
catch (System.Exception updateException)
{
throw updateException;
}
finally
{
// Fermeture de la base
dbConnection.Close();
}