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 :

Afficher le bon avatar depuis ma base..


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Août 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1
    Par défaut Afficher le bon avatar depuis ma base..
    Bonjour à tous,
    J'essaye de construire un site ( un Trombinoscope ) ou chaque personne enregistrée dans ma base de donnée peut avoir une image qui joue le rôle d'avatar sur le site...
    Mon probleme consiste à récuperer le bon avatar pour chaque personne, j'ai reussi à recuperer tous les champs d'informations enregistrées dans la base au préalable ( nom, prenom , email..) mais pour l'image ce n'est pas possible car j'arrive pas à afficher un avatar dynamique : j'ai réussit à afficher l'image récupérée depuis la base si je lui fais un appel direct mais si je veux l'afficher selon l'identifiant de la personne ça passe pas :
    c-à-d :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Image runat="server"  ImageUrl="~/Handler1.ashx?=1" Width="120" h="120" />
    : m'affiche bien l'image de la personne qui a l'identifiant 1

    mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Image runat="server"  ImageUrl=<%: "~/Handler1.ashx?=1" Model.id %> Width="120" h="120" />
    ne donne rien

    ci dessous mon code pour le handler.ashx.cs :
    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
    67
    68
    69
    70
    71
    72
    73
    74
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.IO;
    using System.Data.SqlClient;
    using System.Data;
     
    namespace Trambinoscope
    {
        /// <summary>
        /// Summary description for Handler1
        /// </summary>
        public class Handler1 : IHttpHandler
        {
     
            public void ProcessRequest(HttpContext context)
            {
     
                Int32 empno;
                if (context.Request.QueryString["id"] != null)
                    empno = Convert.ToInt32(context.Request.QueryString["id"]);
                else
                    throw new ArgumentException("No parameter specified");
     
                context.Response.ContentType = "image/jpg";
     
                Stream strm = ShowEmpImage(empno);
                byte[] buffer = new byte[4096];
                int byteSeq = strm.Read(buffer, 0, 4096);
     
                while (byteSeq > 0)
                {
                    context.Response.OutputStream.Write(buffer, 0, byteSeq);
                    byteSeq = strm.Read(buffer, 0, 4096);
                }
                //context.Response.BinaryWrite(buffer);
            }
     
            public Stream ShowEmpImage(int empno)
            {
     
                string conn = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Mehdi\Documents\Visual Studio 2010\Projects\Trambinoscope\Trambinoscope\App_Data\EspritDB.mdf;Integrated Security=True;User Instance=True";
                SqlConnection connection = new SqlConnection();
                connection.ConnectionString = conn;
                string sql = "SELECT photo FROM ESPRITS WHERE id = @id";
                SqlCommand cmd = new SqlCommand(sql, connection);
                cmd.CommandType = CommandType.Text;
                cmd.Parameters.AddWithValue("@id", empno);
                connection.Open();
                object img = cmd.ExecuteScalar();
                try
                {
                    return new MemoryStream((byte[])img);
                }
                catch
                {
                    return null;
                }
                finally
                {
                    connection.Close();
                }
            }
            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
     
        }
    }
    et la le code de la 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
    <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<Trambinoscope.Models.ESPRIT>" %>
     
     
    <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    	Details
     
    </asp:Content>
     
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
     
        <h2>Details</h2>
     
        <fieldset>
            <legend><%: Model.prenom%> <%: Model.nom%></legend>
     
            <div class="display-label">Promotion : <%: Model.promotion%></div>
     
            <div class="display-label">Email : <%: Model.email%></div>
     
            <div class="display-label">Employeur : <%: Model.employeur%></div>
     
            <div class="display-label">Annee d'entrée : <%: Model.anneeEntree%></div>
     
            <div class="display-label">Telephone:  <%: Model.telephone%></div>
     
      <asp:Image runat="server"  ImageUrl=<%  "~/Handler1.ashx?=" Model .id%> Width="120" h="120" />
     
     
        </fieldset> 
        <p>
     
            <%: Html.ActionLink("Modifier", "Edit", new { id = Model.id })%> |
            <%: Html.ActionLink("Retour à la liste Liste", "Index")%>
        </p>
     
    </asp:Content>
    Merci pour votre aide

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Il te manque un "+" entre "~/Handler1.ashx?=1" et Model.id, et il faut mettre le nom du paramètre dans l'URL si tu veux le récupérer avec Request.QueryString["id"] :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Image runat="server"  ImageUrl=<%  "~/Handler1.ashx?id=" + Model .id%> Width="120" h="120" />
    Sinon, tu ferais mieux de donner un vrai nom à ton handler, parce que le jour où tu auras 40 handlers sur ton site ce sera pas super pratique de s'y retrouver entre Handler1, Handler2, etc

Discussions similaires

  1. [SQL] Afficher une image depuis une base de données
    Par shenz dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/01/2008, 00h46
  2. Afficher une image dans rave depuis une base oracle
    Par Bourak dans le forum Bases de données
    Réponses: 5
    Dernier message: 18/06/2007, 11h58
  3. Réponses: 8
    Dernier message: 29/09/2006, 12h08
  4. Afficher une image depuis ma base de données MySQL
    Par hnoumbo dans le forum Outils
    Réponses: 3
    Dernier message: 16/08/2006, 08h57
  5. [Stratégie] Afficher des fichiers PDF depuis une base Oracle
    Par tetram51 dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 20/12/2005, 09h15

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