skysee
Messages postés29Date d'inscriptionmercredi 30 janvier 2002StatutMembreDernière intervention28 septembre 2007
-
27 sept. 2007 à 19:55
bidou_01
Messages postés134Date d'inscriptiondimanche 1 octobre 2006StatutMembreDernière intervention19 mai 2008
-
28 sept. 2007 à 15:57
Bonjour a tous,
Voici mon problème:
J'ouvre un fichier xml, avec lequel je rempli un dataset. Je créé ensuite un table de row (datarow[]) dans le lequel je stoque des les ligne de mon dataset (enfin datatable) sélectionnées par la commande select. Ensuite j'affiche ce datarow[] dans une listview. Donc pas de problème tout cela fonctionne tres bien. Voici le code :
xmlDocDvd.Load("basedvd.xml"); //chargement fichier xml
XmlNodeReader xnr = new XmlNodeReader(xmlDocDvd);
myDsDvd.ReadXml(xnr); //remplissage du dataset
DataRow[] tabRowDvd;
tabRowDvd = myDsDvd.Tables[0].Select("emprunteur='maison'"); //remplissage de mon table de ligne avec un filtre sur la table.
//puis affichage des données du tabRowDvd dans une listview.
Cependant je rappel cette méthode a un autre endroite afin de faire une mise de la listview. Le problème est que les nouvelles données viennent se mettrent à la suite des données précédante dans mon tabRowDvd.
Or je souhaiterais que les enciennes données soient écrasées puis remplacées par les nouvelles.
skysee
Messages postés29Date d'inscriptionmercredi 30 janvier 2002StatutMembreDernière intervention28 septembre 2007 28 sept. 2007 à 14:45
Ca y'est j'ai trouvé en écrivant les lignes de ma réponse au dessus. Comme quoi les c'est au plus pres du mur qu'on voit moins le mur.
En fait, a chaque appel de ma méthode, je reparcour le fichier xml que je....recharge dans mon dataset ....a la suite :)
Donc un ptit myDsDvd.Clear() et ca roule. Merci à toi, bonne journée.
bidou_01
Messages postés134Date d'inscriptiondimanche 1 octobre 2006StatutMembreDernière intervention19 mai 20081 27 sept. 2007 à 20:49
xmlDocDvd.Load("basedvd.xml"); //chargement fichier xml
XmlNodeReader xnr = new XmlNodeReader(xmlDocDvd);
myDsDvd.ReadXml(xnr); //remplissage du dataset
DataRow[] tabRowDvd;
tabRowDvd = myDsDvd.Tables[0].Select("emprunteur='maison'"); //remplissage de mon table de ligne avec un filtre sur la table.
//puis affichage des données du tabRowDvd dans une listview.
skysee
Messages postés29Date d'inscriptionmercredi 30 janvier 2002StatutMembreDernière intervention28 septembre 2007 28 sept. 2007 à 04:42
Le problème est bien la et je comprend vraiment pas: Voici ma méthode complète :
private void initAffichage()
{
int nbLigneTabDvdMaison = 0;
int nbLigneTabDvdEmp = 0;
try
{
xmlDocDvd.Load("basedvd.xml");
XmlNodeReader xnr = new XmlNodeReader(xmlDocDvd);
myDsDvd.ReadXml(xnr);
//affichage des dvd a la maison
DataRow[] tabRowDvd;
tabRowDvd = null;
tabRowDvd = myDsDvd.Tables[0].Select("emprunteur='maison'");
nbLigneTabDvdMaison = tabRowDvd.Length;
for (int i =0 ; i < nbLigneTabDvdMaison; i++)
{
ListViewItem ItemDvdMaison = new ListViewItem(tabRowDvd[i][0].ToString());
listViewDvd.Items.Add(ItemDvdMaison);
}
//-------------------------------
//affichage des dvd prêté
DataRow[] tabRowEmp;
tabRowEmp = null;
tabRowEmp = myDsDvd.Tables[0].Select("emprunteur<>'maison'");
nbLigneTabDvdEmp = tabRowEmp.Length;
for (int i1 = 0; i1 < nbLigneTabDvdEmp; i1++)
{
ListViewItem ItemDvdEmp = new ListViewItem(tabRowEmp[i1][0].ToString());
ItemDvdEmp.Text = tabRowEmp[i1][0].ToString();
ItemDvdEmp.SubItems.Add(tabRowEmp[i1][1].ToString());
listViewPret.Items.Add(ItemDvdEmp);
}
//-------------------------------
La première fois qu j'appel initAffichage(), la variable nbLigneTabDvdMaison prend 78 apres initialisation par nbLigneTabDvdMaison = tabRowDvd.Length;
La première fois qu j'appel initAffichage(), la variable nbLigneTabDvdEmp prend 4 apres initialisation par tabRowEmp = myDsDvd.Tables[0].Select("emprunteur<>'maison'");
Et à chaque fois que je rappel initAffichage nbLigneTabDvdMaison prend 78 llignes de plus que la fois précédente et nbLigneTabDvdEmp prend 4 lignes de plus que la fois précédente. Alors que les tableau sont initialiser a null.
skysee
Messages postés29Date d'inscriptionmercredi 30 janvier 2002StatutMembreDernière intervention28 septembre 2007 28 sept. 2007 à 14:39
Oui il passe bien a null, mais des qu'il est initialiser le problème arrive...j'avoue ne pas comprendre, ca viens obligatoirement de mon tabRowDvd = myDsDvd.Tables[0].Select("emprunteur='maison'");, je cherche je cherche...