Visual Studio 2008 problème de sauvegarde des données en base

Résolu
progbuilder Messages postés 25 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 18 avril 2010 - 11 avril 2010 à 15:38
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 26 mai 2010 à 21:46
Bonjour,

J'ai créé une application qui utilise une base de donnée Access.
Quand je travail sur mon application (quand je fait des mis à jour, delete etc)
je vois mes modifs mais quand j'enregistre (bouton enregistrer sur l'appli) les
données ne s'enregistre pas en base.

Voici le code que j'ai derrière le bouton enregistrer:

Me.Validate()
Me.ParametrageFacturationBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.DataSetParametrageFacturation)

Merci pour votre aide.

6 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
11 avril 2010 à 20:11
Salut,

Si la base est dans le repertoire debug/bin c'est normal,
si tu l'execute depuis vs2008.

Place la base ailleurs.

Sinon execuse en dehors de vs2008 et cela devrait marché.
3
progbuilder Messages postés 25 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 18 avril 2010
11 avril 2010 à 21:09
En effet quand je l'exécute en dehors de vs2008 cela fonctionne très bien.

Merci beaucoup.
0
LaMoucheQuiPete Messages postés 9 Date d'inscription lundi 19 octobre 2009 Statut Membre Dernière intervention 11 juin 2010
26 mai 2010 à 00:38
Bonjour.

J'ai moi aussi une application a créer qui exploite une base de données Access, et mon probleme est que je n'arrive toujours pas a écrire dans la base,j'ai pourtant tout essayer...j'arrive a obtenir le nom des colonnes et des lignes mais pas a ajouter un contact ou a supprimer par exemple.

La connexion semble Ok ,mais ce probleme d'éciture m'exaspere..voici mon code:

class Program
{
public static void Main(string[] args)
{
string path = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\SHEM.mdb";
// string strAccessConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\BTS2\ANDRAL\SHEM\Projet c#\test unitaire\OleDbEleves\SHEM.mdb";
string strAccessConn = path;
string strAccessSelect = "SELECT * FROM Agent";
// string strAccessSelectAstreinte = "SELECT * FROM TableAstreinte";


// Crée le groupe de données et y ajoute la table Agent :
DataSet myDataSet = new DataSet();
OleDbConnection myAccessConn = null;
try
{
myAccessConn = new OleDbConnection(strAccessConn);
Console.WriteLine("Connexion OK");
}
catch (Exception ex)
{
Console.WriteLine("Erreur: création de la connection a la base de données. \n{0}", ex.Message);
return;
}

try
{

OleDbCommand myAccessCommand = new OleDbCommand(strAccessSelect, myAccessConn);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myAccessCommand);

myAccessConn.Open();
myDataAdapter.Fill(myDataSet, "Agent");
//string Julien = string.Empty;
//myAccessCommand.CommandText "DELETE FROM Agent where Prenom ? ";
//myAccessCommand.Parameters.Add("Prenom", OleDbType.Char).Value = Julien;

myDataAdapter.Fill(myDataSet, "TableAstreinte");
}

catch (Exception ex)
{
Console.WriteLine("Erreur: pas de réqupération de données dans la base.\n{0}", ex.Message);
return;
}


//un groupe de données pouvant contenir plusieurs tables,
//celles ci sont toutes insérées dans un tableau:
DataTableCollection dta = myDataSet.Tables;



DataColumnCollection drc = myDataSet.Tables["Agent"].Columns;


DataRowCollection dra = myDataSet.Tables["Agent"].Rows;
//DataRowCollection dra = myDataSet.Tables["TableAstreinte"].Rows;
DataTable table;
DataRow dr = myDataSet.Tables["Agent"].NewRow();

table = myDataSet.Tables["Agent"];


dr = table.NewRow();
dr[0] = "Yann";
dr[1] = "paul";
table.Rows.Add(dr);
table.AcceptChanges();


myAccessConn.Close();

cela passe a la compilation , mais quand j'execute et j ouvra ma base (SHEM.mdb) rien ne se passe dans ma table "Agent" j'utilise pourtrant les méthodes DataRow tout ça...Je suis néophyte en prog donc un bon coup demain serai génial merci @ tous.

Aurevoir.
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
26 mai 2010 à 20:00
Salut,

Tu n'as pas compris le principe des datasets.
Les datasets sont des tables memoires deconnectées.

table.AcceptChanges --> fait en sorte que les modifications apportées lors des manipulations sont acceptées ie les modifications avant acceptchanges ne sont plus trackées.

Pour enregistrer en base il faut utiliser dataadapter.update

http://www.microsoft.com/france/vision/saga-dot-net/ episode 28 pour plus de detail.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LaMoucheQuiPete Messages postés 9 Date d'inscription lundi 19 octobre 2009 Statut Membre Dernière intervention 11 juin 2010
26 mai 2010 à 21:11
Salut

Merci pour ta réponse, je manipule aussi mydataadpter.update mais je ne c'est pas ou le placé dans mon code ,as tu une idée?????

et pense tu que cela suffise pour pouvoir rajouter ma ligne avec le nom et prénom passé en parametre comme je l'ai fait ou faut t il utiliser direct le lanquage SQL?

bye
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
26 mai 2010 à 21:46
0
Rejoignez-nous