Tableau d'objet [Résolu]

cs_jorrie 62 Messages postés mardi 24 mai 2005Date d'inscription 23 mai 2007 Dernière intervention - 11 oct. 2006 à 11:45 - Dernière réponse : cs_jorrie 62 Messages postés mardi 24 mai 2005Date d'inscription 23 mai 2007 Dernière intervention
- 11 oct. 2006 à 19:51
Bonjours, j'aimerais créer un tableau de personne que je stockerais
dans une variable session mais lorsque j'essaie il me met erreur de
reference a l'objet: voici mon code:


//Création d'un tableau d'utilisateur

    Fonctions_Globales.Utilisateur_pilotage[] tab = new Fonctions_Globales.Utilisateur_pilotage[50];


    tab[0].nom="Jerem";   -> ceci me crée l'erreur en question .


//voici ce qui se trouve dans Fonctions_Globales.Utilisateur_pilotage :

public class Utilisateur_pilotage

    {

        private string _Nom;

        private string _Prenom;

        private string _Email;

        private string _Tel_B;

        private string _Tel_P;


        public string Nom

        {

            get {return _Nom;}

            set {_Nom = value;}

        }
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 11 oct. 2006 à 17:44
3
Merci
Je sais pas ce que tu cherches à faire mais voici comment je ferrais :

public List Utilisateurs
{
   get
   { 
         return Session["Users"] as List;
   }
   set
   {
         Session["Users"] = value;
    }
}

et ensuite ou que tu sois tu fais un

Utilisateur user = new Utilisateur()
user.truc = "chose";
Utilisateurs.Add(user);

Ensuite si tu veux accéder à cette variable session n'importe ou dans ton site, tu fais un helper donc une classe static que tu met dans le dossier app_code

public static class SessionHelper
{

 public static List Utilisateurs
{
   get
   { 
          List value = System.Web.HttpContext.Current.Session["Users"] as List;
          if (value == null) 
                   value = new List();
   }
   set
   {
          System.Web.HttpContext.Current.Session["Users"] = value;
    }
}

}

Maintenant n'importe ou dans ton code tu peux aceder à cette variable en faisant SessionHelper.Utilisateurs.

Si tu veux rajouter des utilisateurs tu peux utiliser les méthodes de List<> à savoir Add, RemoveAt, Insert, Clear.

<hr />Cyril - MVS - MCP

Merci jesusonline 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de jesusonline
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 11 oct. 2006 à 12:07
0
Merci
Bonjour,

c'est normal car en faisant new Utilisateur_pilotage[50] tu déclares une variable qui contiendra 50 objets, mais tu ne créer (heureusement) pas 50 objects. Il faut donc que tu le créer avant de lui faire quoi que ce soir donc

tab[0] = new Utilisateur_pilotage();
tab[0].nom = "Jerem";

pour des raisons de perf, je te conseille de faire

Utilisateur u = new Utilisateur();
u.nom = "Jerem";
tab[0] = u;

Cela évitera à ton code d'aller chercher la variable à chaque fois dans le tableau (peut etre que le compilo optimise ca mais pas sur)

Autre détails, généralement on utilise un ArrayList pour ce genre de choses car c'est plus souple (mais peut etre que tu n'en as pas besoin) en .net 2 il y a meme des ArrayList generics on peut donc faire

List us = new List();

Utilisateur u = new Utilisateur();
u.nom = "Jerem";

us.add(u);

<hr />Cyril - MVS - MCP
Commenter la réponse de jesusonline
cs_jorrie 62 Messages postés mardi 24 mai 2005Date d'inscription 23 mai 2007 Dernière intervention - 11 oct. 2006 à 12:17
0
Merci
Ca a l'air de marcher mais j'aimerais stocké ce tableau dans une
variable session et pouvoir ainsi recuperer le nom d'un utilisateur
voivi comment je procede mais ca a pas l'air de marcher:


Session["Membre"]=tab;

.tab = (Fonctions_Globales.Utilisateur_pilotage[])Session["Membre"];

    int i=0;

      while (i<Convert.ToInt32(Session["NB_M"].ToString()))

    {

      LB_ComitePilotage.Items.Add(.tab[i].Nom + " - " + .tab[i].Prenom);

       }


//Sachant que Session["NB_M"] represente le nombre d'utilisateur enregistré

//LB_ComitePILOTAGE represente une list box
Commenter la réponse de cs_jorrie
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 11 oct. 2006 à 12:40
0
Merci
euh, pourquoi le point de .tab ?

dans ta boucle while, tu n'as pas l'impression qu'il manque qqchose ? comme incrémenter i ?

<hr />Cyril - MVS - MCP
Commenter la réponse de jesusonline
cs_jorrie 62 Messages postés mardi 24 mai 2005Date d'inscription 23 mai 2007 Dernière intervention - 11 oct. 2006 à 14:04
0
Merci
J'ai regle les autres problemes mais maintenant il me met cast de la chaine non valide ::


Var.tab = (Fonctions_Globales.Utilisateur_pilotage[])Session["Membre"]; // pour cette ligne
Commenter la réponse de cs_jorrie
cs_jorrie 62 Messages postés mardi 24 mai 2005Date d'inscription 23 mai 2007 Dernière intervention - 11 oct. 2006 à 14:06
0
Merci
Pour expliquez un peu plus le probleme , j'aimerais recuperer ce que je
viens de mettre dans ma session afin de rajouter un utilisateur et de
conserver les utilisateurs precedemment inserer
Commenter la réponse de cs_jorrie
cs_jorrie 62 Messages postés mardi 24 mai 2005Date d'inscription 23 mai 2007 Dernière intervention - 11 oct. 2006 à 14:24
0
Merci
je veux bien utiliser un arraylist mais j'arrive a faire resortir un utilsateur de la liste
Commenter la réponse de cs_jorrie
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 11 oct. 2006 à 16:12
0
Merci
c'est quoi ce var.tab ???

<hr />Cyril - MVS - MCP
Commenter la réponse de jesusonline
cs_jorrie 62 Messages postés mardi 24 mai 2005Date d'inscription 23 mai 2007 Dernière intervention - 11 oct. 2006 à 16:30
0
Merci
var me permet de regrouper toutes mes variables dans une classe que j'instancie
Commenter la réponse de cs_jorrie
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 11 oct. 2006 à 16:37
0
Merci
et tab ?

il est bien instancié et du meme type que le contenu de ta variable ? c'est bien un tableau avec le bon nombre d'element ?

<hr />Cyril - MVS - MCP
Commenter la réponse de jesusonline
cs_jorrie 62 Messages postés mardi 24 mai 2005Date d'inscription 23 mai 2007 Dernière intervention - 11 oct. 2006 à 16:59
0
Merci
voici comment je declare tab


public Fonctions_Globales.Utilisateur_pilotage[] tab = new Fonctions_Globales.Utilisateur_pilotage[50];

       
Commenter la réponse de cs_jorrie
cs_jorrie 62 Messages postés mardi 24 mai 2005Date d'inscription 23 mai 2007 Dernière intervention - 11 oct. 2006 à 19:51
0
Merci
Je te remercie beaucoup pour ta rapidité et le tps que tu as passé c cool.j'ai finalement reussi a faire ce que je voulais.Merci beaucoup
Commenter la réponse de cs_jorrie

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.