DataSet > comment ça marche? [C#] - C#/.NET managed - Programmation
Marsh Posté le 11-06-2006 à 15:55:53
pour t'expliquer plus en detail ce que c'est un dataset, il s'agit d'un composant très générique permettant de représenter les données sous forme de table. 
 
Imagine toi une base de données avec des tables, un dataset permet d'avoir l'image de la base de données dans un seul dataset. 
 
Il comprend des tables, des lignes et des colonnes.  
 
Maintenant, tu peux manipuler les données de ces tables très facilement.  
 
Donc la création d'un tel object 
 
Dataset data = new Dataset(); 
data.Tables.add("Contacts" ); 
data.Tables["Contacts"].Columns.Add("Contact" ); 
 
data.Tables["Contacts"].Rows.Add(new Object[] { new Contact(...) }); 
data.Tables["Contacts"].Rows.Add(new Object[] { new Contact(...) }); 
data.Tables["Contacts"].Rows.Add(new Object[] { new Contact(...) }); 
... 
 
et voila tu obtiendra une table "Contacts" avec une colonne "Contact" contenant des object "Contact" initialisé comme tu veux... 
 
Voila j'espère que ça t'aura aidé... Bon courage
Marsh Posté le 11-06-2006 à 17:40:05
Merci beaucoup! 
 
 
C'est exactement ce dont j'ai besoin! Et maintenant je comprend comment on utilise les tables/colonnes/ligne! J'avais un peu du mal à voir. 
 
Merci! 
 
 
Marsh Posté le 11-06-2006 à 18:06:18
de rien, si tu as encore une autre question sur les dataset n'hésite pas... 
 
pour ajouter une ligne tu peux également utiliser: 
 
DataRow r = data.Tables["Contacts"].NewRow(); 
r["Contact"] = new Contact(...); 
 
data.Tables["Contacts"].Rows.Add(r);
Marsh Posté le 11-06-2006 à 23:09:41
En faite apres un essaie, tu pourrais me donner un exemple pour LIRE un element precis? 
 
par exemple un dataset avec une tables "contact", qq colonnes : "nom","prenom",... 
et x ligne. 
 
le mieux que j'ai reussi c'est d'obtenir le nom des collones :s 
Alors j'suis pas sur que j'puisse le faire en un seul temps. 
 
J'ai vaguement essayer de trouver la fonction qui allé bien pour me retourner une ligne sous la forme d'un objet que je cast en Ccontact mais j'ai pas réussi  
 
 
 
Un exemple? ^_^ 
 
Merci. 
 
 
(Je me suis débrouillé autrement pour mon appli mais ça m'interesse  )
)
Marsh Posté le 12-06-2006 à 09:11:12
 
for (int i=0 ; i < data.Tables["Contacts"].Rows.Count ; i++) 
{ 
    string nom = data.Tables["Contacts"].Rows[i]["NOM"].ToString(); 
    string prenom = data.Tables["Contacts"].Rows[i]["PRENOM"].ToString(); 
    MessageBox.Show (nom + " " + prenom); 
} 
Marsh Posté le 12-06-2006 à 17:59:11
| moi23372 a écrit : for (int i=0 ; i < data.Tables["Contacts"].Rows.Count ; i++)  | 
 
 
ok c'est niquel  
 
 
je te remercie encore ^_^
Marsh Posté le 28-09-2008 à 09:55:23
bjr  
svp que voulez vous dire par les pointillés ???? 
Dans:  
data.Tables["Contacts"].Rows.Add(new Object[] { new Contact(...) });             // ici 
et aussi  
Dans: 
 
DataRow r = data.Tables["Contacts"].NewRow();  
r["Contact"] = new Contact(...);     //  ici  
 
Merci de ma repondre                        
Marsh Posté le 28-09-2008 à 10:11:34
Ce sont les éventuels paramètres du constructeur
Marsh Posté le 28-09-2008 à 10:53:50
slt harkonnen 
j'avoue que je comprend pas trop ""Ce sont les éventuels paramètres du constructeur"" 
 
explique moi avec un exemple si cest possible 
merci 
Marsh Posté le 28-09-2008 à 11:24:23
ce sont les bases de la programmation POO ça.  
Sais tu au moins ce qu'est un constructeur avec ou sans paramètre?
Marsh Posté le 28-09-2008 à 18:45:45
| darine8277 a écrit : slt harkonnen  | 
 
Comme le dit moi23372, ce sont les bases de la POO... Le constructeur d'une classe est la méthode appelée lors de l'instanciation de la classe. Cette méthode, comme toutes les autres, peut prendre des paramètres. 
Après, je te renvoie vers un livre ou tuto de POO
Marsh Posté le 29-09-2008 à 00:21:16
ok harkonnen 
J'ai repris le code pour inserer un datarow dans un dataset,la compilation ne m'affiche pas d'erreur mais a l'execution l'insertion ne s'effectue pas !!!  c a d que le datagridview ne se remplit pas  
si dessous le code ecrit: 
 
dataset data=new dataset();//creation du dataset 
data.tables.add("personnel" );//creer la table personnel 
data.tables["personnel"].columns.add("matr" );//creer la colonne 
data.tables["personnel"].columns.add("nom" );//creer la colonne 
 
data.tables["personnel"].rows.add(new object[] {1;"aaa"}//creer la ligne 
 
ç fait 02 jours que je suis dessus mais sans succes please aider moi !!!  
 
Marsh Posté le 29-09-2008 à 16:12:32
tu as assigné ton dataset à ton datagridView? 
 
via sa propriété "DataSource". 
 
this.monDataGridView.DataSource = data;
Marsh Posté le 13-10-2008 à 10:18:44
J'ai repris ce code pas d'erreur mais l'insertion ne s'effectue pas   
 
DataSet data=new DataSet();//creation du dataset  
data.Tables.Add("FONCTIONS" );//creer la table fonction 
data.Tables["FONCTIONS"].Columns.Add("CODEF" );//creer la colonne  
data.Tables["FONCTIONS"].Columns.Add("LIBFONCT" );//creer la colonne  
this.fONCTIONSDataGridView.DataSource = data;//attribuer le dataset a un datagridview 
data.Tables["FONCTIONS"].Rows.Add(new object[] { "'cODEFTextBox.Text'", "'lIBFONCTTextBox.Text'" });//creer la ligne  
 
Marsh Posté le 10-06-2006 à 19:31:08
bon, voila, je debutte en C# et d'une maniere generale en .NET, et je cherche a utiliser les dataset.
Le truc, ce que j'suis completement paumé pour l'utilisation.
Je fait une appli qui doit montré (pour un projet) les liaisons possibles entre le XML et le C#, donc je montre différentes méthodes.
Globalement j'arrive à lire un fichier XML, a mettre ça dans un dataset et l'afficher dans un datagrid, meme si j'ai pas tout compris on foncitonnement.
Maintenant je voudrais écrire dans un fichier, je voudrais donc créer un tableau d'objet (pour mon exemple j'ai une classe Contact) à inserer, et pour l'une des méthodes je veux passer par un dataset.
Mais je n'ai aucune idée de comment l'initialiser, rien...
Alors vu que je n'ai rien trouvé d'assez clair sur le net, quelqu'un pourrait me donnerun exemple d'utilisation??
Ou nu lien vers un bon tuto concernant dataset/datagrid
Je précise que je ne passe pas par une base de donnée (pour le moment en tout cas), donc je ne suis pas sur que ce soit possible?
Merci
Message édité par gargantua307 le 11-06-2006 à 09:51:03