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

progbuilder 25 Messages postés lundi 5 mai 2008Date d'inscription 18 avril 2010 Dernière intervention - 11 avril 2010 à 15:38 - Dernière réponse : nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention
- 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
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 11 avril 2010 à 20:11
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é.

Merci nhervagault 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de nhervagault
progbuilder 25 Messages postés lundi 5 mai 2008Date d'inscription 18 avril 2010 Dernière intervention - 11 avril 2010 à 21:09
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
LaMoucheQuiPete 9 Messages postés lundi 19 octobre 2009Date d'inscription 11 juin 2010 Dernière intervention - 26 mai 2010 à 00:38
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
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 26 mai 2010 à 20:00
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
LaMoucheQuiPete 9 Messages postés lundi 19 octobre 2009Date d'inscription 11 juin 2010 Dernière intervention - 26 mai 2010 à 21:11
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
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 26 mai 2010 à 21:46
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.