2009-10-26 6 views
1

Je développe un projet dans ASP.Net (C#). Ma définition de projet est Système de réservation de voyages en ligne.Problème de l'état de la session

Dans mon projet, il y a un module de sélection de sièges. Lorsque je sélectionne un siège particulier pour un itinéraire particulier en utilisant une case à cocher, je crée une session pour le siège sélectionné de sorte que si jamais je choisis le même itinéraire, les sièges sélectionnés ne devraient pas être affichés.

Le problème auquel je suis confronté est lorsque je sélectionne un itinéraire différent, je reçois un siège sélectionné que je n'avais pas sélectionné précédemment.

Ceci est urgent. Quelqu'un peut m'aider à résoudre ce problème?

Merci.

Répondre

1

Vous devez associer l'occupation du siège à chaque itinéraire. Vous pouvez utiliser ou définir une structure de type de données spéciale pour stocker cette information. Vous pouvez créer votre propre structure ou tableau qui contient les informations de chaque siège occupé par chaque route. Vous pouvez stocker cette structure de données dans une session et l'utiliser au fur et à mesure de vos besoins. Vous devrez mettre à jour la structure de données en session chaque fois qu'un nouveau siège est occupé ou qu'un siège préoccupé est libéré.

Vous pouvez également utiliser la base de données pour stocker les informations que je suppose que serait une meilleure option.

1

Un dictionnaire pourrait bien fonctionner pour votre application
http://msdn.microsoft.com/en-us/library/xfhwa508.aspx

En psuedocode:

// Read the selected seats and store them 
OnCheckChanged(...) 
{ 
    Dictionary<Route,Seat> reservedSeats = Session["reservedSeats"] as Dictionary<Route,Seat>; 
    reservedSeats[Current Route] = Selected Seat; 
    Session["reservedSeats"] = reservedSeats; 
} 

// Show the selected seats when they come to a specific route 
OnLoad(...) 
{ 
    Dictionary<Route,Seat> reservedSeats = Session["reservedSeats"] as Dictionary<Route,Seat>; 
    SetSeatSelection(reservedSeats[Current Route]); 
} 

Fondamentalement, vous pouvez stocker un objet dictionnaire dans la session avec une entrée pour chaque itinéraire. Chaque session est spécifique à un utilisateur spécifique, cela devrait suffire. Bien que, vous voudrez peut-être simplement le stocker dans une base de données si vous voulez que la sélection soit mémorisée entre les visites, etc.