Visual Studio 2008 problème de sauvegarde des données en base [Résolu]

Messages postés
25
Date d'inscription
lundi 5 mai 2008
Dernière intervention
18 avril 2010
- - Dernière réponse : nhervagault
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
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.
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
23
3
Merci
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é.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 115 internautes nous ont dit merci ce mois-ci

Commenter la réponse de nhervagault
Messages postés
25
Date d'inscription
lundi 5 mai 2008
Dernière intervention
18 avril 2010
0
Merci
En effet quand je l'exécute en dehors de vs2008 cela fonctionne très bien.

Merci beaucoup.
Commenter la réponse de progbuilder
Messages postés
9
Date d'inscription
lundi 19 octobre 2009
Dernière intervention
11 juin 2010
0
Merci
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.
Commenter la réponse de LaMoucheQuiPete
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
23
0
Merci
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.
Commenter la réponse de nhervagault
Messages postés
9
Date d'inscription
lundi 19 octobre 2009
Dernière intervention
11 juin 2010
0
Merci
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
Commenter la réponse de LaMoucheQuiPete
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
23
Commenter la réponse de nhervagault

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.