Neo020585
Messages postés178Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention 6 juillet 2009
-
10 juin 2006 à 01:05
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 2013
-
11 juin 2006 à 18:15
Bonjour tout le monde, je suis en train de développer un
petit projet perso, et je me heurte à quelques problèmes.
Neo020585
Messages postés178Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention 6 juillet 20094 10 juin 2006 à 12:18
Cod : Pour info, les 3 champs que tu ne compte pas sont les champs ID.
Lorsque l'on charge le xml dans un datagrid afin de voir le nombre de ligne, elles en font partie !
N'existe-t-il pas un moyen en C# de récupérer le nombre de ligne du dataset ???
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 10 juin 2006 à 12:37
D'ailleurs, je viens de constater que ton exemple plus haut est faux, et c'est pour que ça la valeur ne joue pas. Tu fais :
int rows 0;<?XML:NAMESPACE PREFIX U1 /?> <?XML:NAMESPACE PREFIX = O /?>
for (int x = 0; x < nbTables; x++)
{
rows + = xmlDoc.DataSet.Tables[0].Rows.Count;
}
alors qu'il faut mettre :
int rows = 0;
for (int x = 0; x < nbTables; x++)
{
rows += xmlDoc.DataSet.Tables[ x ].Rows.Count;
}
Neo020585
Messages postés178Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention 6 juillet 20094 10 juin 2006 à 13:55
Bidou : Je viens d'essayer ta méthode du foreach, mais elle ne fonctionne pas meiux, elle me renvoi toujours 3.
De plus, je me suis trompé quand j'ai recopier mon bout de code, et c bien un x que j'ai mis pour le Rows.Count.
Mon résultat de change toujours pas, j'obtient 3 pour ce fichier.
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 10 juin 2006 à 23:23
Je ne comprend pas pourquoi tu parles de fichier, on parle bien d'un DataSet non?
Tu charges le DataSet (avec méthode LoadXml) ou bien quoi?
Si oui, soit certain que le contenu du DataSet est correct (tout n'est peut-être pas chargé comme tu le penses). Car les deux méthodes ci-dessus fonctionnent... Et si ça retourne 3, c'est que ya 3 rows dans ton DataSet (un par table?) !
Neo020585
Messages postés178Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention 6 juillet 20094 10 juin 2006 à 23:29
Je charge effectivement un dataset avec le conteu d'un fichier xml avec la méthode xmlDoc.DataSet.ReadXml("test.xml");.
Pour vérifier le nombre de ligne qu'il y a par table, j'ai afficher le dataset dans un datagrid.
Le resultat est tel que je trouve 12 lignes au total.
Est-ce que tu pense que 3 serait le nombre de ligne correspondant au noeud ayant des enfants ?
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 11 juin 2006 à 13:01
Non, mais dans le doute j'ai quand même fait un petit exemple :
// Une ligne
DataTable dt1 =
new
DataTable();
dt1.Columns.Add(
"1",
typeof(
string));
dt1.Rows.Add(
"1");
// deux lignes
DataTable dt2 =
new
DataTable();
dt2.Columns.Add(
"1",
typeof(
string));
dt2.Rows.Add(
"1");
dt2.Rows.Add(
"2");
// trois lignes
DataTable dt3 =
new
DataTable();
dt3.Columns.Add(
"1",
typeof(
string));
dt3.Rows.Add(
"1");
dt3.Rows.Add(
"2");
dt3.Rows.Add(
"3");
DataSet ds =
new
DataSet();
ds.Tables.Add(dt1);
ds.Tables.Add(dt2);
ds.Tables.Add(dt3);
int rows = 0;
foreach (
DataTable dt
in ds.Tables) rows += dt.Rows.Count;
// Rows vaut 6 (3+2+1)
Console.WriteLine(
"rows: " + rows);
Ca print bien 6, donc de ce côté là y'a aucun problème.
T'as une erreur qui vient de quelques part d'autre...
Je ne sais pas pourquoi, j'ai l'impression que le dataSet ne contient pas les données que tu penses !
Par exemple, comment tu fais pour afficher un DataSet dans un DataGridView??? On ne peut afficher qu'une table à la fois...
Neo020585
Messages postés178Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention 6 juillet 20094 11 juin 2006 à 15:54
En fait, lorsque je charge le DataSet dans le DataGrid, il me présente tout d'abord les 3 tables, et lorsque l'on clique sur l'une d'entre elle, on peut naviguer dedans.
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 11 juin 2006 à 18:15
Mais tu utilises un DataGrid ou un DataGridView?
Ca serait pas mal si tu pouvais mettre un peu de code, du genre la méthode qui s'occupe de charger les données du fichier xml dans le DataGrid(View), le fichier xml (le plus de ligne possible) ou tout autre bout de code qui pourrait aider.
Parce que là, c'est dur de dire comme ça...