C# 如何在gridview中显示sql表中的图像?

C# 如何在gridview中显示sql表中的图像?,c#,asp.net,.net,C#,Asp.net,.net,您好,我尝试将图像从sql表显示到gridview,但它没有显示这是我将gridview与sql表记录绑定的代码…. 当用户登录时,用户登录照片应显示我正在尝试的内容 图像已存储在数据库中,但将图像从数据库检索到gridview时出现问题 postbookschat.aspx.cs protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { lblsession.Text =

您好,我尝试将图像从sql表显示到gridview,但它没有显示这是我将gridview与sql表记录绑定的代码….

当用户登录时,用户登录照片应显示我正在尝试的内容 图像已存储在数据库中,但将图像从数据库检索到gridview时出现问题

postbookschat.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        lblsession.Text = "Welcome" + Convert.ToString(Session["UName"]);
        sessionimage();

    }
}

private void sessionimage()
{
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["connect"].ConnectionString);
    try
    {
        int EmpID = (int)Session["EmpID"];
        SqlDataAdapter Adp = new SqlDataAdapter("select  EmpID,Photo from TBL_PBLogin where EmpID='" + EmpID + "'", con);
        DataTable Dt = new DataTable();
        con.Open();
        Adp.Fill(Dt);
        gridviewphoto.DataSource = Dt;
        gridviewphoto.DataBind();
        con.Close();
    }
    catch (Exception ex)
    {
        throw new Exception(ex.ToString());
    }
}
PostBookChat.aspx

 <body>
    <form id="form1" runat="server">
       <div>
          <div id="header">
             <img src="Image/book.png" height="60" width="140" style ="margin-left:0px;float:left;"/>
                 <div id="login">
                     <b><asp:Label ID="lblsession" runat="server" ForeColor="white" CssClass="label"></asp:Label>
                            <asp:GridView ID="gridviewphoto" runat="server" AutoGenerateColumns="false" BackColor="#CC3300" ForeColor="Black" ShowHeader="false" GridLines="None">
                               <Columns>
                                   <asp:TemplateField ControlStyle-Width="100" ControlStyle-Height="100">

                                       <ItemTemplate>
                                            <asp:Image ID="Image" runat="server" ImageUrl='<%# "~/Handler.ashx?id=" + Eval("EmpID") %>' />
                                       </ItemTemplate>

                                   </asp:TemplateField>
                               </Columns>
                        </asp:GridView>
                   <asp:Button ID="btnlogout" runat="server" Text="Sign Out" CssClass="myButton" OnClick="btnlogout_Click"/>
              </div>
           </div>
       </body>
public class Handler : IHttpHandler
{
  public void ProcessRequest(HttpContext context)
  {
    if (context.Request.QueryString["EmpID"] == null) return;
    string connStr = ConfigurationManager.AppSettings["connect"].ToString();
    string pictureId = context.Request.QueryString["EmpID"];
    using (SqlConnection conn = new SqlConnection(connStr))
    {
        using (SqlCommand cmd = new SqlCommand("SELECT Photo FROm TBL_PBLogin WHERE EmpID = @EmpId", conn))
        {
            cmd.Parameters.Add(new SqlParameter("@EmpID", pictureId));
            conn.Open();
            using (SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                reader.Read();
                context.Response.ContentType = "image/png";
                context.Response.BinaryWrite((Byte[])reader[reader.GetOrdinal("Photo")]);
                reader.Close();
            }
        }
    }
}
数据库

        EmpID (PK,int notnull) (1,1)
        UName(varchar(255),notnull)
        Password(varchar(255),notnull)
        Photo(image,null)
可能重复@Deepak follow