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 :

télécharger des données sql par des utilisateurs d'un site


Sujet :

ASP.NET

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut télécharger des données sql par des utilisateurs d'un site
    Bonjours,

    Je suis actuellement en stage et je dois créer un site internet en C# et asp.NET. Le site avance bien mais je me fais face un probléme, je n'arrive pas à créer le code permettant aux utilisateurs du site à télécharger les données de la base SQL dans un fichier exel. J'ai lu beaucoup de forum sans succé majeurs, je vous remercie d'avance pour votre aide.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 32
    Points : 36
    Points
    36
    Par défaut
    Le principe est le suivant :
    -créer un fichier excel dans un des sous répertoires de ton site
    -présenter dans la page un lien vers ce fichier.

    Pour le premier point, je pense que le plus simple est de créer un fichier .xls contenant un simple tableau HTML (à moins de maîtriser les subtilités du format Excel). Voici un exemple de code (je ne l'ai pas testé) :

    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
     
            public void CreationFichierExcel(DataTable TableDonnee, string NomFichier)
            {
                string Debut = @"<HTML><BODY><TABLE Border=1>";
                string Fin = @"</TABLE></BODY></HTML>";
                string Entete = "<TR>";
                StringBuilder Donnees = new StringBuilder();
     
                foreach (DataColumn col in TableDonnee.Columns)
                {
                    Entete += @"<TH>" + col.ColumnName + @"</TH>";
                }
     
                Entete += @"</TR>";
     
                foreach (DataRow row in TableDonnee.Rows)
                {
                    Donnees.Append(@"<TR>");
                    for (int i = 0; i < TableDonnee.Columns.Count; i++)
                    {
                        Donnees.Append(@"<TD>" + row[i].ToString() + @"</TD>");
                    }
                    Donnees.Append(@"</TR>");
                }
     
                string TableauHTML = Debut + Entete + Donnees.ToString() + Fin;
                System.IO.StreamWriter EcrivainFlux = System.IO.File.CreateText(NomFichier);
                EcrivainFlux.WriteLine(TableauHTML);
                EcrivainFlux.Close();
                EcrivainFlux.Dispose();
            }
    Si tu vas sur mon site tu trouveras un mode de fonctionnement analogue dans la page "recherche géographique" mais il s'agit de génération d'images et non de fichier Excel

    ________________________________
    Seminoque, créateur de
    http://www.bingokaz.com

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut réponse
    Ok je vous remercie beaucoup je vais essayer tout de suite pour voir son fonctionnement, je vous informerais de mon avancement.

  4. #4
    Membre actif Avatar de bartoumi
    Profil pro
    Inscrit en
    Février 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 178
    Points : 205
    Points
    205
    Par défaut
    Cree toi un tableux html normal en le remplissant avec tes donneé et redire ta sortie (objet response) en changeant bien sur le type mime(bien sur celui de EXCEL) de sortie

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Probléme
    Bonjours,
    je viens de tester ton code et j'ai un souci sinon se ne serait pas drôle...
    Voila mon erreur:

    Access to the path 'c:\windows\system32\inetsrv\Nomdufichier' is denied.

    En gros de ce que j'ai compris, il ne veut pas créé le fichier que j'ai nommé Nomdufichier. L'erreur vient de cette ligne:

    System.IO.StreamWriter EcrivainFlux = System.IO.File.CreateText(NomFichier);


    Si tu pouvais m'aider, Merci.

  6. #6
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Cela vient du fait que le processus ASPNET n'a pas les droits en écriture pour le répertoire dans lequel tu essayes de créer le fichier.

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut re
    Okai c'est ce que je pensais mais je ne vois pas comment,soit changer l'emplacement du fichier dans le code ci-dessus soit autoriser ASP.net à écrire dedans.

    Merci d'avance.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 32
    Points : 36
    Points
    36
    Par défaut
    Peut-être que je suis pas bien malin mais quand j'ai mis en place des droits sur un site web IIS/ASP .NET, c'était l'enfer. Il y a de nombreuses possibilités. Voilà les règles que j'ai appliqué pour pouvoir créer des fichiers dans un sous-répertoire du site :

    Le compte utilisé pour l’accès anonyme au site est IUSR_XXX (XXX est le nom de l'ordinateur) et ASP .NET prend la main en utilisant AUTORITE NT\SERVICE RÉSEAU (ou NT AUTHORITY\NETWORK SERVICE en anglais). Il y a donc deux niveaux de droits.

    1-Les droits Web (pour IUSR_XXX) doivent être modifiés sur les répertoires en faisant clic droit/propriétés depuis la console IIS et en allant dans l’onglet Répertoire : dans la liste Autorisations sélectionner aucune puis cocher Ecriture.

    2-Il faut également ajouter des droits NTFS (clic droit/Propriétés sur le répertoire, onglet sécurité) : pour AUTORITE NT\SERVICE RÉSEAU ajouter dans les paramètres avancés Création de fichier/écriture de données ainsi que Suppression.

    J'espère que ça marchera pour toi
    ________________________________
    Seminoque, papa de
    http://www.bingokaz.com

Discussions similaires

  1. Enregistrer des données introduite par l'utilisateur
    Par cp-08jhu dans le forum Android
    Réponses: 2
    Dernier message: 13/01/2012, 09h46
  2. Réponses: 2
    Dernier message: 22/07/2011, 15h44
  3. Modifier des donnés sql par formulaire (avec variables)
    Par expression dans le forum Langage
    Réponses: 2
    Dernier message: 29/03/2008, 09h35
  4. Sélection de données séparées par des lignes et/ou des colonnes vides
    Par Crystalle dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/12/2007, 20h02
  5. Réponses: 3
    Dernier message: 26/02/2007, 14h43

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