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 :

Attribuer un namespace à une classe


Sujet :

ASP.NET

  1. #1
    Membre habitué
    Inscrit en
    Avril 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2006
    Messages : 103
    Points : 134
    Points
    134
    Par défaut Attribuer un namespace à une classe
    Bonjour.

    En suivant ce tutoriel, je voulais créer ma classe d'accès en lecture à Excel en VB.NET.

    Donc j'ai créé une petite application ASP.NET, et créer la classe dans un ficher lireExcel.vb placer dans le répertoire App_code. En gros la structure du fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Imports Microsoft.Office.Interop.Excel
     
    Namespace automationExcel
     
        Public Class LireExcel
     
            ' Déclaration des champs
            ' Déclaration des propriétés
            ' Déclaration des méthodes et fonctions
     
        End Class
     
    End Namespace
    Ensuite je crée un formulaire web à la racine du projet. Dans le code behind de celui-ci j'essaie de faire un Imports automationExcel, mais impossible...
    J'ai l'erreur suivante:
    L'espace de noms ou le type spécifié dans les Imports 'automationExcel' ne contient aucun membre public ou est introuvable. Vérifiez que l'espace de noms ou le type est défini et qu'il contient au moins un membre public. Vérifiez que le nom de l'élément importé n'utilise pas d'autres alias.
    Pouvez-vous m'expliquer comment résoudre cette erreur. Pour le point des membres public, ma classe est déclarée en public. Les méthodes pour la plupart sont public aussi, ainsi que les propriétés.

    Merci d'avance pour votre aide.

  2. #2
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Points : 444
    Points
    444
    Par défaut
    est ce que ta class Excel compile ?

  3. #3
    Membre habitué
    Inscrit en
    Avril 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2006
    Messages : 103
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par oyigit Voir le message
    est ce que ta class Excel compile ?
    Je n'ai pas de problème au niveau de la génération du projet sans webform (c'est-à-dire juste avec la classe) si c'est de cela que tu parles. Autrement, comment je dois m'y prendre?

  4. #4
    Membre régulier Avatar de beren.kei
    Inscrit en
    Mai 2008
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mai 2008
    Messages : 135
    Points : 123
    Points
    123
    Par défaut
    bonjour,
    le Namespace doit être le nom de ton projet si tu veux t'en sortir... en tout cas si j'ai bien compris c'est de la que vient ton erreur!

    "- Mais à quoi ça sert IE ?
    - à télécharger Firefox ! "

  5. #5
    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 : 45
    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 peux nous montrer la structure de ton projet ?

    Quand tu dis :
    Je n'ai pas de problème au niveau de la génération du projet sans webform (c'est-à-dire juste avec la classe)
    Tu veux dire que :
    - si ta classe LireExcel est definie dans le App_code, sans page web l'appelant, cela fonctionne
    - ou que tu as bouge ta classe dans un autre projet ?

    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.

  6. #6
    Membre actif
    Inscrit en
    Décembre 2008
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 280
    Points : 261
    Points
    261
    Par défaut
    serait-il possible que ton nom de ta class soit différent du nom de ta pge de class ?

    Sinon de quelle façon appelle tu ta class dans ton code ?
    Paye Tes Dettes - Applciation android.

    DevHackSecure - Pense bête d'un étudiant en informatique - Tutos DEV

    " I also realize that _everybody_ thinks that they are right, and that they are supported by all other right-thinking people. That's just how people work. We all think we're better than average." Linus Torvalds

  7. #7
    Membre habitué
    Inscrit en
    Avril 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2006
    Messages : 103
    Points : 134
    Points
    134
    Par défaut
    Bonjour.

    Voilà pour ce qui est de la structure actuelle :


    Donc comme vous pouvez le voir mon fichier de Classe se trouve dans le répertoire App_Code.

    Je crée une page webform donc quota.aspx à la racine du projet.
    Et dans celle-ci je souhaite accèder à la classe LireExcel en important déjà le namespace nommé automationExcel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Imports automationExcel 
    ' --> Erreur! que je vous ai précisé dans mon premier message.
    Alors déjà je ne savais pas que je devais donné au namespace le même nom que le projet?

    Et pour info la classe porte le même nom que le fichier : LireExcel.vb --> LireExcel.

    Si quelqu'un peut m'expliquer pourquoi je rencontre ce problème.

    Je n'ai pas pour habitude de faire des classes, mais dans un autre projet j'en ai fait une pour l'accès aux données en C# et je n'ai pas rencontré de problème...

    Merci d'avance.
    Images attachées Images attachées  

  8. #8
    Membre régulier Avatar de beren.kei
    Inscrit en
    Mai 2008
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mai 2008
    Messages : 135
    Points : 123
    Points
    123
    Par défaut
    bonjour !

    c'est tout a fait normal que ton fichier ai le nom de ta classe, c'est pour une bonne lisibilité... lorsque tu créé ta classe, VS créé un fichier NomClasse.cs

    de même pour les NameSpace, lorsque tu créé une nouvelle classe dans ton projet il devrait être automatiquement attribué le nom de ton projet comme namespace ( ou nomProjet.NomDossier si dans un dossier)
    Mais ce qui est vraiment important pour que ta classe et tes pages se voient, c'est qu'ils aient le même namespace ou que tu y fasse des using (import je crois en vb!

    en tout cas c'est comme ca que ca fonctionne en C#, ca m'étonnerait que ce soit différent en vb...

    j'espère t'avoir aidé
    bonne prog

    "- Mais à quoi ça sert IE ?
    - à télécharger Firefox ! "

  9. #9
    Membre habitué
    Inscrit en
    Avril 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2006
    Messages : 103
    Points : 134
    Points
    134
    Par défaut
    Désolée, mais je ne comprend vraiment pas où tu veux en venir?! ça veut dire qu'en principe ma page.vb dans le répertoire App_code fait partie du même namespace que mes page web .aspx (qui porte effectivement le nom du projet).

    Malheureusement, lorsque j'essaie de créer un objet, cela ne fonctionne pas.

    Évidemment, comme je l'ai dit plus haut j'ai fait l'Imports qui me génère une erreur, puisqu'il n'est pas reconnu!!

    Par ailleurs, est-il normal que je n'ai pas l'intelliSense dans mon ficher de classe au moment où j'ai écrit mes méthodes?

  10. #10
    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 : 45
    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
    Citation Envoyé par Plexi86 Voir le message
    Par ailleurs, est-il normal que je n'ai pas l'intelliSense dans mon ficher de classe au moment où j'ai écrit mes méthodes?


    Est-ce que tu as des erreurs dans ta liste dérreurs ?

    Est-ce que tu as des fichiers vb et des fichiers c# dans le projet (on sait jamais)

    Si tu recrees une classe "from scratch" avec une methode bidon qui fait un console.writeline, est-ce que tu as láuto-completion ?

    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.

  11. #11
    Membre habitué
    Inscrit en
    Avril 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2006
    Messages : 103
    Points : 134
    Points
    134
    Par défaut
    Bon pour l'instant, je veux surtout voir si la classe fonctionne.
    Donc je l'ai déplacé dans ma page web (en code behind)

    Du coup j'ai eu plein d'erreur qui sont apparues, j'ai corrigé le tout et maintenant quand je lance l'exécution, j'ai cette magnifique alerte d'erreur dans l'application:

    Erreur de compilation body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px} b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px} H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red } H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon } pre {font-family:"Lucida Console";font-size: .9em} .marker {font-weight: bold; color: black;text-decoration: none;} .version {color: gray;} .error {margin-bottom: 10px;} .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; } Erreur du serveur dans l'application '/'.

    Erreur de compilation

    [FONT=Arial, Helvetica, Geneva, SunSans-Regular, sans-serif]Description : Une erreur s'est produite lors de la compilation d'une ressource requise pour répondre à cette demande. Veuillez consulter ci-dessous les détails relatifs à l'erreur en question, puis modifier votre code source de manière appropriée.

    Message d'erreur du compilateur: BC30002: Type 'Microsoft.Office.Interop.Excel.Application' non défini.

    Erreur source:


    Ligne 8 : ' ************************************* EXCEL *************************************
    Ligne 9 : ' Application :
    Ligne 10 : Private mAppli As Microsoft.Office.Interop.Excel.Application
    Ligne 11 : ' Identifiant du processus :
    Ligne 12 : Private mProcessID As Integer[/FONT]
    Alors j'ai modifié la ligne 10 en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Private mAppli As _Application ' Comme dans le tutoriel pré-cité
    Eh bien j'ai toujours cette même page d'erreur qui s'affiche comme si je n'avais rien modifié...

    J'ai fermé le projet, réouvert; j'ai fermer Visual Web et réouvert, vidé le cache IE... rien à faire!

    Je commence à douter de mon environnement de développement

    Avez-vous déjà rencontré ce problème-ci?

    Cordialement.

  12. #12
    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 : 45
    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 bien ajoute les références a Excel ?

    Parce qu'apparemment, c'est ce que ton programme te dis dans l'erreur...


    Est-ce qu'Excel est installe sur ta machine ?

    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.

  13. #13
    Membre habitué
    Inscrit en
    Avril 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2006
    Messages : 103
    Points : 134
    Points
    134
    Par défaut
    Yes Sir les références y sont et de surcroît j'ai ça en début de code behind

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Imports Microsoft.Office.Interop.Excel
    Mais comme je le disais lors de mon dernier poste, mes modifications ne sont pas prises en compte par exemple, je fais une déclaration supplémentaire comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        ' ********************************** EXCEL **********************************
        ' Application :
        ' XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
        Private max As Integer
        Private mini As Integer
        Private mAppli As _Application
        ' Identifiant du processus :
        Private mProcessID As Integer
        ' Classeur :
        Private mWorkbook As _Workbook
        ' Feuille :
        Private mWorksheet As _Worksheet
    Eh bien il continue à me ramener l'erreur de mon post précédent... Comme si il ne recompilait pas le code avant l'exécution, donc j'ai beau avoir corrigé l'erreur, le message lui persiste...

    C'est sûrement un problème de cache ou Visual Web me lâche!

    Merci de vos astuces pour me dépatouiller de tout ça.

  14. #14
    Membre habitué
    Inscrit en
    Avril 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2006
    Messages : 103
    Points : 134
    Points
    134
    Par défaut


    Enfin. J'ai réussit à compiler mon code : j'ai dû recréer un projet, ajouter les références vers le COM Interop d'Excel, copier mon code dans la page default.aspx et lancer l'exécution et là au miracle cela fonctionne.

    La classe Excel fonctionne bien, mais je suis déçue du fait qu'il faille la mettre dans le code behind de ma page au lieu de le mettre dans un fichier classe dans l'App_code.
    (Ne m'en voulait pas, pour cette raison je laisse mon topic en non résolu parce que j'y tiens!)

    Encore merci à ceux qui m'ont lu.

    Cdt.

  15. #15
    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 : 45
    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
    Citation Envoyé par Plexi86 Voir le message
    La classe Excel fonctionne bien, mais je suis déçue du fait qu'il faille la mettre dans le code behind de ma page au lieu de le mettre dans un fichier classe dans l'App_code.
    (Ne m'en voulait pas, pour cette raison je laisse mon topic en non résolu parce que j'y tiens!)
    Ca, par contre, c'est bizarre, normalement, tu dois pouvoir mettre ta classe dans ton app_code, voire dans un autre projet, sans problemes...

    Je pencherais plutot pour un pb. de references dans ta premiere solution

    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.

Discussions similaires

  1. Kompozer Attribuer des propriétés à une classe
    Par Jean Sympa dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 15/11/2010, 10h46
  2. [Smarty] Attribuer une class en fonction d'un résultat avec une variable
    Par kitten13 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 25/09/2008, 20h03
  3. attribuer une classe ccs via javascript
    Par julien.63 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/04/2008, 16h18
  4. Réponses: 1
    Dernier message: 20/03/2008, 09h40
  5. Attribuer une classe à un élément lors d'un clic
    Par Perceval dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 18/10/2005, 17h19

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