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

C# Discussion :

an object reference is required for the non static field method or proprety


Sujet :

C#

  1. #1
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut an object reference is required for the non static field method or proprety
    Bonjour, j'au une fonction :
    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
    [WebMethod]
        [ScriptMethod]
        public static String deleteStation(Int16 idStation)
        {
            try
            {
                connection.Open();
                string DeleteQ = "delete from dbo.StationsServices where ID_station=" + idStation;
                SqlCommand MyCmd = new SqlCommand(DeleteQ, connection);
                MyCmd.ExecuteNonQuery();
                fillStations();
                return "Suppression effectuée ";
            }
            catch (SqlException ex)
            {
                return "Erreur suppression : " + ex.ToString();
            }
            finally
            {
                connection.Close();
            }
        }
    cette methode permet de supprimer un element de ma base, je veux apres suppression de ma bd le supprimer aussi de mon dropdownlist fillStations(); :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    private void fillStations()
        {
            string query = "SELECT ....";
     
            SqlDataAdapter da = new SqlDataAdapter(query, connection);
            DataTable dt = new DataTable();
            da.Fill(dt);
            ddlAdr.DataTextField = "Name_Station";
            ddlAdr.DataValueField = "ID_station";
            ddlAdr.DataSource = dt;
            ddlAdr.DataBind();
            //ddlAdr.Items.Insert(0, new ListItem("-- Selectionnez une catégorie --", "-1"));
     
        }
    cette fonction marche tres bien

    sauf que dans ma static methode je recois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    an object reference is required for the non static field method or proprety
    que dois je faire pour que je puisse rafraichir mon dropdownlist ?

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    On doit specifier l'instance de la classe qui implémente fillStations().

    Par exemple si FillStation est implémenté dans la class StationManagement, on aura :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // instantiation de la classe
    StationManagement TheStationManagement = new StationManagement() ;
    ...
    // appel à la fonction pour l'instance
    TheStationManagement.fillStation() ;
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    merci cela a resolu mon probleme, mais il m'a crée un autre au niveau de la meme ligne :
    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
    // instantiation de la classe
            _Default stations = new _Default();
     
     
            try
            {
                connection.Open();
                string DeleteQ = "delete from dbo.StationsServices where ID_station=" + idStation;
                SqlCommand MyCmd = new SqlCommand(DeleteQ, connection);
                MyCmd.ExecuteNonQuery();
                stations.fillStations();
                return "Suppression effectuée ";
            }
            catch (SqlException ex)
            {
                return "Erreur suppression : " + ex.ToString();
            }
            finally
            {
                connection.Close();
            }
        }
    quand je met :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stations.fillStations();
    c'est une fonction qui marche tres bien
    mais maintenant il me dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    La référence d'objet n'est pas définie à une instance d'un objet.
    ceci au niveau de la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            ddlAdr.DataTextField = "Name_station";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     private void fillStations()
        {
            string query = "SELECT ID_station,Name_station FROM [StationsServices] order by Name_station asc";
     
            SqlDataAdapter da = new SqlDataAdapter(query, connection);
            DataTable dt = new DataTable();
            da.Fill(dt);
            ddlAdr.DataTextField = "Name_station";
            ddlAdr.DataValueField = "ID_station";
            ddlAdr.DataSource = dt;
            ddlAdr.DataBind();
            //ddlAdr.Items.Insert(0, new ListItem("-- Selectionnez une catégorie --", "-1"));
     
        }

  4. #4
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    Bonjour

    l'objet ddlAdr c'est quoi ? car vous l'appelez, mais est il défini quelque part ?

  5. #5
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    C est l I'd de ma drop down list que je dois remplir via fillstAtion

  6. #6
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    Ok c'est la dropdownlist

    si vous essayez de mettre en commentaires ces deux lignes, ça fait quoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
         //   ddlAdr.DataTextField = "Name_station";
         //   ddlAdr.DataValueField = "ID_station";
    normalement il n'y a pas de raison pour que la suite plante.

  7. #7
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    ca va planté dans d'autre ligne du programme, car j'utilise le fillstation dans d'autre ligne et ca fonctionne sans probleme

    Le processus est le suivant : ma dropdown list est remplie via fillstation au chargement de ma page

    je selectionne un element et je le supprime : tout est bon jusqu'ici
    apres l'element suipprimé doit disparaitre de ma dropdown list c'est pourquoi j'appelle fillstation pour une deuxieme fois

  8. #8
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    Bonjour, il y a quelque chose de bizarre dans ce code, j'appelle la même fonction dans un evenement click et ca marche :

    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
    protected void go_Click(object sender, EventArgs e)
        {
            ModalPopupExtender1.Hide();
            try
            {
                connection.Open();
     
                string InsertQ = "INSERT INTO .....";
                SqlCommand MyCmd = new SqlCommand(InsertQ, connection);
                MyCmd.ExecuteNonQuery();
                fillStations();
            }
            catch (SqlException ex)
            {
     
            }
            finally
            {
                connection.Close();
            }
        }
    je crois que le probleme reside dans le fait que la fonction est static avec webmethod

  9. #9
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    meme probleme ici http://stackoverflow.com/questions/1...-static-object

    et ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://support.microsoft.com/kb/818587/fr

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/01/2012, 14h53
  2. Réponses: 2
    Dernier message: 31/01/2008, 11h58
  3. Réponses: 1
    Dernier message: 26/07/2007, 17h29
  4. Réponses: 5
    Dernier message: 18/05/2007, 12h30
  5. [C#][debutant]erreur => object reference is required for a no
    Par ChristopheOce dans le forum Windows Forms
    Réponses: 3
    Dernier message: 25/01/2006, 13h47

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