[C#] DataSet > comment ça marche?

DataSet > comment ça marche? [C#] - C#/.NET managed - Programmation

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
Reply

Marsh Posté le 10-06-2006 à 19:31:08   

Reply

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

Reply

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!
 
 

Reply

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);

Reply

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 :p)


Message édité par gargantua307 le 11-06-2006 à 23:09:55
Reply

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);
}

Reply

Marsh Posté le 12-06-2006 à 17:59:11    

moi23372 a écrit :

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);
}


 
ok c'est niquel :)
 
je te remercie encore ^_^

Reply

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                        

Reply

Marsh Posté le 28-09-2008 à 10:11:34    

Ce sont les éventuels paramètres du constructeur


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

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

Reply

Marsh Posté le 28-09-2008 à 10:53:50   

Reply

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?


---------------
quand un homme raisonne mal c'est qu'il n'a pas les données pour raisonner mieux (diderot)
Reply

Marsh Posté le 28-09-2008 à 18:45:45    

darine8277 a écrit :

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


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

Reply

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 !!! :o

Reply

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;


---------------
quand un homme raisonne mal c'est qu'il n'a pas les données pour raisonner mieux (diderot)
Reply

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  
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed