IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

problème d'objet session dans une requête


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Points : 61
    Points
    61
    Par défaut problème d'objet session dans une requête
    Bonjour

    Dans mon site, j'ai codé un gridview avec un AccessDataSource pour accéder à ma base.
    Pour trier ce gridview, je manipule la requête du AccessDataSource en fonction de données entrées dans des Textbox ou des combo.
    Tout à l'air de bien fonctionner, sauf que quand j'utilise l'objet session pour stocker et réutiliser une requête, çà plante. il m'affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     Object reference not set to an instance of an object.
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
     
    Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
     
    Source Error:
     
    Line 56:         where = filtrerpartcmb(where, txtnom, "nom");
    Line 57:         where = filtrercmb(where, cmbpromo);
    Line 58:         string test = Session["reqdebase"].ToString() + where;
    Line 59:         //Response.Write(where);
    Line 60:         if (Session["req"] != null)
     
     
    Source File: d:\www\masteriens-misl.org\htdocs\index.aspx.cs    Line: 58
     
    Stack Trace:
     
    [NullReferenceException: Object reference not set to an instance of an object.]
       contributions.btntri_Click(Object sender, EventArgs e) in d:\www\masteriens-misl.org\htdocs\index.aspx.cs:58
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102
    Selon moi celà veut dire que l'objet session n'est pas instancié, chose que je ne comprends pas.
    Voici le code C# de ma page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    public partial class contributions : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                if (Session["req"] != null)
                bdmasteriens.SelectCommand = Session["req"].ToString();
            }
            else
                Session["reqdebase"] = bdmasteriens.SelectCommand.ToString();
            //Response.Write(Session["reqdebase"].ToString());
        }
     
        private string filtrerpartcmb(string where, TextBox ctrl, string champ)
        {
            if (ctrl.Text.Trim() != "")
            {
                if (where == "")
                    where = " where ";
                else
                    where += " and ";
                where += champ + @" like '%" + ctrl.Text + "%'";
            }
            return where;
     
        }
     
        private string filtrercmb(string where, DropDownList ctrl)
        {
            if (ctrl.Text.Trim() != "")
            {
                if (where == "")
                    where = " where ";
                else
                    where += " and ";
                where += ctrl.DataTextField + "='" + ctrl.SelectedItem + "'";
            }
            return where;
     
        }
        protected void btntri_Click(object sender, EventArgs e)
        {
            string where = "";
            where = filtrerpartcmb(where, txtnom, "nom");
            where = filtrercmb(where, cmbpromo);
            string test = Session["reqdebase"].ToString() + where;
            //Response.Write(where);
            if (Session["req"] != null)
            {
                if (Session["req"].ToString() != test)
                {
                    bdmasteriens.SelectCommand = test;
                    Session["req"] = test;
                }
                else
                    bdmasteriens.SelectCommand = Session["req"].ToString();
            }
            else
            {
                bdmasteriens.SelectCommand = test;
                Session["req"] = test;
            }
            dtgindex.DataBind();
            //Response.Write(Session["req"].ToString());
        }
    Ce qui est bizarre, c'est que par moment çà marche parfaitement, mais la plupart du temps, çà m'affiche le message d'erreur.

    SI quelqu'un est inspiré, merci d'avance pour son aide.

  2. #2
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    est-ce que tu as essaye de mettre un point d'arret, pour voir le contenu de Session["reqdebase"] au moment ou tu le mets dans test ?

    je ne pense pas que le pb vienne de la session, vu que de toute façon, tu écris dans la session avant de faire ca (sisisisi, dans ton page_load )


    amha, ton pb vient de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Session["reqdebase"].ToString()
    ...mais parce que Session["reqdebase"] vaut null, et que null.ToString() = NullReferenceException

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Points : 61
    Points
    61
    Par défaut
    Salut

    Désolé, mais je travaille en pointillé sur ce projet, et j'ai eu un gros coup de bourre sur d'autres choses, je n'ai donc pu répondre tout de suite, bien que j'aie vu la réponse, et que j'ai testé l valeur de Session["reqdebase"].ToString().
    Le problème c'est qu'en serveur local, tout marche parfaitement, mais chez mon hébergeur, ce problème persiste et annule tout mon travail.
    Il y a des configurations différentes possibles sur le serveur, qui pourraient impacter le comportement des objets Session ?

    Merci pour votre aide

Discussions similaires

  1. problème avec l'apostrophe dans une requête
    Par mika0102 dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/03/2019, 16h51
  2. Récupérer objet session dans une Applet
    Par LTN dans le forum Applets
    Réponses: 4
    Dernier message: 24/10/2006, 14h07
  3. problème classement de date dans une requête
    Par heteroclite dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 15/10/2006, 15h55
  4. Problème select MAX(annee) dans une requête
    Par grisounette dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 28/10/2004, 17h36
  5. Problème de Order by dans une requête
    Par showa dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/08/2004, 15h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo