progbuilder
Messages postés25Date d'inscriptionlundi 5 mai 2008StatutMembreDernière intervention18 avril 2010
-
11 avril 2010 à 15:38
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 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:
LaMoucheQuiPete
Messages postés9Date d'inscriptionlundi 19 octobre 2009StatutMembreDernière intervention11 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;
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;
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.
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 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
LaMoucheQuiPete
Messages postés9Date d'inscriptionlundi 19 octobre 2009StatutMembreDernière intervention11 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?