Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Comment utiliser une base Access? [ Base de données / Access ] (Tuizi)

vendredi 24 août 2007 à 09:26:36 | Comment utiliser une base Access?

Tuizi

Bonjour,

Voila, j'ai une base de donnée Access avec laquelle je veux travailler, donc INSERT,DELETE, etc....
J'ai donc établit une connexion à cette base à l'aide de l'outil "Ajouter une nouvelle source de données" de VS2005, il ma créé un DataSet.

Ne connaissant pas ce composant (DataSet), je créé un objet avec ce DataSet et je m'apperçoit rapidement que je peux faire:
monDataSet.matable.AddRow(), alors je me dit: "Super ça va être facile de travailler avec ma BDD!".

Seulement, le AddRow() n'ajoute rien du tout à ma base Access :s

Donc ma question est: Comment utiliser un DataSet?, ou plus généralement: Comment communiquer avec une base de donnée Access?

Tuizi

vendredi 24 août 2007 à 09:32:56 | Re : Comment utiliser une base Access?

sebmafate

Membre Club Administrateur CodeS-SourceS
Bah... le AddRow ajoute une ligne à une DataTable... mais ne l'enregistre pas dans la base de données.

il faut faire monDataSet.matable.Update() pour cela...


Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]

vendredi 24 août 2007 à 10:07:57 | Re : Comment utiliser une base Access?

Tuizi

La méthode Update() n'existe pas!

Il y a AcceptChganges() qui à l'air sympa... mais ça n'ajoute aucune ligne dans ma base de données!

Tuizi

vendredi 24 août 2007 à 10:11:56 | Re : Comment utiliser une base Access?

sebmafate

Membre Club Administrateur CodeS-SourceS

oops... j'm'a trompé... la méthode Update n'est pas sur la DataTable mais sur le DataAdapter.
La méthode AcceptChange sert à autre chose... donc à ne pas utiliser dans ton cas.

 




Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]


vendredi 24 août 2007 à 10:13:59 | Re : Comment utiliser une base Access?

Tuizi

Donc il faut que j'ajoute un DataAdapter?

Tuizi

vendredi 24 août 2007 à 10:17:17 | Re : Comment utiliser une base Access?

sebmafate

Membre Club Administrateur CodeS-SourceS
non non... si tu utilises .net 2.0, les DataTableAdapter sont automatiquement créé.

Regarde ton code... tu as dû à moment ou un autre faire Fill() pour remplir tes tables... et bien, il suffit de faire la même chose, mais avec Update()


Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]

vendredi 24 août 2007 à 10:29:50 | Re : Comment utiliser une base Access?

Tuizi

Ups... euh... non je n'ai fait à aucun moment un Fill... et j'ai rempli aucun tableau!

Mais j'ai mis en place un DataTableAdapter:

monDataSetTableAdapaters.matableAdapter tableAdapater = new monDataSetTableAdapaters.matableAdapter();

tableAdapater.Update(monDataSet);


Mais chose étrange... lorsqu'il fait ce Update... il sort de la fonction :s, par exemple si juste après cette Update() je fais un int i = 0, et bien je m'aperçoit qu'il ne passera pas par cette ligne!!! :s

Tuizi

vendredi 24 août 2007 à 10:41:02 | Re : Comment utiliser une base Access?

sebmafate

Membre Club Administrateur CodeS-SourceS
Bon... on reprend au début...

Tu as importé dans ton problème ta base de données Access.
Visual Studio a créé un certains nombre de classe pour l'acces aux données. Parmis elles, tu trouves un dataset typé et des DataTableAdapters.
Chaque DataTableAdapter doit contenir 4 requêtes : Select (SelectCommand), Updale (UpdateCommand), Insert (InsertCommand) et Delete (DeleteCommand) qui correspondent aux différents types d'opérations que tu peux faire sur tes tables. En gros, au moment où tu vas appeler la méthode Update du DataTableAdapter, ADO.net va regarder chaque ligne et appliquer la commande nécessaire.

Normalement, dans ton code (peut-être dans le .designer.cs) tu dois appeler la méthode Fill du DataTableAdapter pour "remplir" ta DataTable... et donc, il faut que tu réutilises ce même DataTableAdapter pour faire l'update.


Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]

vendredi 24 août 2007 à 11:24:46 | Re : Comment utiliser une base Access?

Tuizi

Pour mes DataTableAdapter, j'ai bien .Update(colum1,colum2,etc...) pareil pour Insert et Delete... mais étrangement j'ai pas le Select

Pour .Fill, je l'ai bien dans le monDataSet.designer.cs.

Je l'ai suivit au debuger quand il fait le Update() et il passe uniquement dans la propriété Adapter... et rien d'autre... je sais pas si ça peut-t'aider... mais en tout cas il ne fait toujours pas le code que je met juste après le Update()

Tuizi

vendredi 24 août 2007 à 11:28:12 | Re : Comment utiliser une base Access?

sebmafate

Membre Club Administrateur CodeS-SourceS
s'il ne passe pas dans le code après, c'est qu'il y a une exception de levé (erreur)... donc, soit ta requête n'est pas bonne... soit tu as un problème ailleur...

tu as un try/catch quelque part ?


Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]


1 2

Cette discussion est classé dans : access, base, donnée, utiliser, dataset


Répondre à ce message

Sujets en rapport avec ce message

Base de donnée Access et VB6 [ par VEQ ] Je recherche les méthodes pour ajouteret supprimer des éléments dans une base acces 97 à partir de VB6 en utilisant un Data.Merci. Access ou C#? [ par Darkrudandei ] Premierement merci d'avoir répondu a ma première demande d'aideMaintenant mon probleme est le suivant.J'ai une base de donnée Access (non, pas SQL et Comment trouver une base de donnée Access sur le disque en C# [ par trioy ] Bonjour,j'ai deux questions...la première : comment faire pour que lorsque l'on installe le soft développé en C# avec une base de donnée access le pro c# + connexion à une base de donnée ACCESS [ par samy_13 ] Bonjour à tousVoila je dois faire une application pour une association, elle tourne  avec une bd ss ACCESS. Le problème c'est que je ne connais pas le Dataset, image et base de donnée [ par Golbatt ] Bonjour, alors voilà j'ai renplis un dataset à l'aide d'une requete sur une table d'une base de données accès (locale). Une des colonnes de la table c filtre sur datagrid / dataset [ par bibicool ] Bonjour à tous,Voilà mon problème.Je fais une requête sur une base de donnée SQL serveur, je remplis un dataset (une seule table) avec le résultat.Ens debutant+dataset [ par benjeddi ] salut j'ai cré un datsetavec le designer puis j'ai inseré dans le tableadapter mes données jusqu'a ici tous va bien mais le probleme quand j'ai essaye charger de l'xml dans une base de donnée ? [ par 6miK ] bonjour,j'arrive a enrregistrer ma base de donnée dans un fichier xml et j'arrive aussi a charger mon xml dans un datagrid.Mais, je n'arrive pas à met base de données access [ par djbabou ] Bonjour a tous !Je suis en train de concevoir une petite application en c# qui se charge de gérer de la musique ( playliste, etc...) . En creation d'un dataset dynamique et repercuter cette table dans une base de donnee access [ par WAKAWAKA ] Bonjour,en fait j'ai creer un dataset dynamique avec le code suivant://creation de ma base de donnée access test.mdbif (File<f


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.