none
Impossible d'appeler une class à portée "public" RRS feed

  • Question

  • Bonjour à tous,
    J'ai dans mon projet 2 classes avec des portées public. C'est un projet ASP.NET, seule le code behind pose problème.
    J'ai crée une classe de connexion nommée ConnectionClass que voici:

    using System; using System.Collections; using System.Configuration;

    using System.Data.SqlClient; namespace Coffee.App_Code { public static class ConnectionClass { //static--> avoir la variable partout dans le projet private static SqlConnection conn; private static SqlCommand command; public static ConnectionClass() { string connectionString = ConfigurationManager.ConnectionStrings["CoffeeConnection"].ToString(); conn = new SqlConnection(connectionString); command = new SqlCommand("", conn); } public static ArrayList GetCoffeByType(string coffeeType) { ArrayList List = new ArrayList(); string query = string.Format("SELECT * FROM coffee WHERE type LIKE'{0}'", coffeeType); try { conn.Open(); command.CommandText = query; SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { int id = reader.GetInt32(0); string name = reader.GetString(1); string type = reader.GetString(2); double price = reader.GetDouble(3); string roast = reader.GetString(4); string country = reader.GetString(5); string image = reader.GetString(6); string review = reader.GetString(7); Coffee.App_code.Coffee coffee = new Coffee.App_code.Coffee(id, name, type, price, roast, country, image, review); List.Add(coffee); } } finally { conn.Close(); } return List; } } }

    et la page nommée Coffee, ayant le code behind que voici:
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Text;
    using System.Data;
    using System.Data.SqlClient;
    using System.Configuration;
    using Coffee;
     
     
     
    namespace Coffee.Pages
    {
        public partial class Coffee : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
     
            }
     
            private void FillPage()
            {
                ArrayList coffeeList = new ArrayList();
     
                if (!IsPostBack)
                {
                    coffeeList = ConnectionClass.GetCoffeeByType("%");
                }
                else
                {
                    coffeeList = ConnectionClass.GetCoffeeByType(DropDownList1.SelectedValue);
                }
            }
        }
    }

    Comme vous pouvez le voir en image jointe, dans le code-behind de la page, lorsque j'appelle la ConnectionClass, elle est soulignée de rouge. Impossible de l'appeler. Et à mon grand désarroi, je n'arrive pas à déceler d’où provient l'erreur. Merci de m'aider.

    mercredi 12 juin 2013 19:24

Réponses

  • Bonjour

    Donc essayez de commenter le contenu du FillPage (), faites une compilation, et décommettez le contenu de FillPage.

    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    Bonjour,

    Effectivement je publie le projet en localhost au fil de l'avancement. et je ne comprends pas cette partie de votre intervention que je viens de citer.

    Par contre, j'ai pu constater, (c'est une remarque que j'ai faite avec Visual Studio 2012) lorsque que je change le nom du dossier avec comme exemple Code au lieu de App_code ou encore App_Code, il n'y a plus de problème. La classe est appelée partout.
    La remarque la plus frappante est la suivante qui pourrait être une nouveauté de Visual Studio 2012: Lorsque vous ajoutez dossier dont le noms est compris dans cette suite que voici '{App_code, App_GlobalResources, App_Browsers...theme}, vous avez carrement un choix limité d'éléments ajoutable selon le dossier créer, Et tous ces dossier sont pré-nommés et trouvables de la façon suivante: Faites un clic droit sur le projet, vous avez une option Ajouter ---> "Ajouter le dossier ASP.NET" qui elle même renferme tous les dossiers sus-nommés.
    Peut-être que ceci devrait expliquer l’impossibilité d'appeler cette classe de portée public.

    Merci pour votre aide.

    Cordialement.

    lundi 17 juin 2013 12:23
  • Bonjour,

    J'ai essayé de recréer les repertoire App_code plusieurs fois en changeant la casse, mais rien n'y fit.

    J'ai fini par reprendre le projet en prenant soins de faire un nommage intelligent des pages et des classes. j'ai pu avancer.

    Merci .

    • Marqué comme réponse Aurel Bera vendredi 21 juin 2013 10:35
    vendredi 21 juin 2013 10:32

Toutes les réponses