[graphicsxp] Hashtable reste désespérément vide
Bonsoir à tous,
J'ai une Hashtable globale :
Code:
private Hashtable ListeInterets = new Hashtable();
Je la remplis au cours de la lecture d'un SQLDataReader de la manière suivante :
Code:
1 2 3 4
| while (ListeCentresInteret.Read())
{
ListeInterets.Add(ListeCentresInteret["CodeInteret"].ToString(), ListeCentresInteret["LibelleInteret"].ToString());
} |
Je suis sûr que ListeCentresInteret["CodeInteret"].ToString() et ListeCentresInteret["LibelleInteret"].ToString() retournent bien des valeurs (par exemple respectivement "7" et "Sport"), mais il se trouve que ma Hashtable n'est jamais remplie. CodeInteret est un n° de clef primaire (unique).
Malgré un try/catch je n'ai pas non plus d'erreur lorsque je débugge.
Merci à celui ou celle qui saura me dire ce que j'ai bien pu oublier...
Mets ton hashtable dans ton page_load alors
C'est tu assez clair?
Alex
[asp.net 2.0] Hashtable qui ne se remplit pas dans un if(!Page.IsPostBack)
Bonjour à tous,
Tout d'abord : oui je sais j'ai déjà posté sur le forum C# mais il s'avère finalement que le problème concerne plus spécifiquement l'ASP.NET.
Voilà j'ai une Hashtable qui est déclarée comme variable globale :
Code:
private Hashtable ListeInterets = new Hashtable();
Ensuite elle est remplie dans mon Page_Load :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| protected void Page_Load(object sender, EventArgs e)
{
SqlConnection ConnexionPTIEmailing = new SqlConnection();
ConnexionPTIEmailing.ConnectionString = ConfigurationManager.ConnectionStrings["MaConnexion"].ToString();
//if (!Page.IsPostBack)
{
try
{
//On va générer automatiquement le tableau présentant les centres d'intérêt
ConnexionPTIEmailing.Open();
SqlCommand CommandeListeCentresInteret = new SqlCommand("SELECT CodeInteret, LibelleInteret FROM Interets ORDER BY LibelleInteret", ConnexionPTIEmailing);
SqlDataReader ListeCentresInteret = CommandeListeCentresInteret.ExecuteReader();
while (ListeCentresInteret.Read())
{
//On récupère dans la Hashtable (variable globale) la liste des centres d'intérêt ainsi que leur clef primaire
ListeInterets.Add(ListeCentresInteret["CodeInteret"].ToString(), ListeCentresInteret["LibelleInteret"].ToString());
//Plus bas dans ce while --> Génération de la table des centres d'intérêt |
J'ai identifié de manière assez précise la source du problème. Si je laisse "if (!Page.IsPostBack)" en commentaire, la Hashtable se remplit bien, mais si j'enlève les "//" de commentaire, la Hashtable ne se remplit jamais (ListeCentresInteret["CodeInteret"] et ListeCentresInteret["LibelleInteret"] renvoient bien des valeurs, j'ai vérifié).
Pourtant j'ai besoin que cette Hashtable se remplisse dans le page "if (!Page.IsPostBack)", sinon...
...Jetez un coup d'oeil ici, et inscrivez-vous avec l'email "thestrokes@hotmail.com" (le nom et le prénom importent peu). Vous voyez la table des centres d'intérêt qui se génère à nouveau à chaque rechargement? Le "if (!Page.IsPostBack)" c'est pour ça. Il faut que cette table se génère une seule fois à l'initialisation (et au passage que ça remplisse le Hashtable).
Merci à ceux qui sauront m'aider.