【发布时间】:2025-12-16 02:20:02
【问题描述】:
在将存储在我的数据库中的图像文件显示到 图像控制。我已经阅读了一些文章并观看了一些非常有效的视频教程,我遵循了它,但我无法让它发挥作用。图像控件只显示空白。我使用通用处理程序从我的数据库中检索图像文件。请帮我指出我哪里出错了?感谢您的帮助...这是我的代码。
通用处理程序:
<%@ WebHandler Language="C#" Class="ShowImage" %>
using System;
using System.Configuration;
using System.Drawing;
using System.Drawing.Imaging;
using System.Web;
using System.IO;
using System.Data;
using System.Data.SqlClient;
public class ShowImage : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
if (context.Request.QueryString["ID"] == null) return;
//string connStr = ConfigurationManager.ConnectionStrings["connStr"].ToString();
string connStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Coldwind.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
string ID = context.Request.QueryString["ID"];
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand("Select Photos From ProfileTab Where ID =" + ID, conn))
{
//cmd.Parameters.Add(new SqlParameter("@ID",ID));
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
reader.Read();
context.Response.ContentType = "image/jpeg";
context.Response.BinaryWrite((Byte[])reader[reader.GetOrdinal("Photos")]);
// byte[] imgData = (byte[])reader["Photos"];
// context.Response.BinaryWrite(imgData);
reader.Close();
}
}
}
}
public bool IsReusable
{
get
{
return true;
}
}
}
图像控件的 Asp.Net 代码:
<asp:Image ID="Image1" runat="server" ImageUrl='<%# "ShowImage.ashx?ID=" + Eval("ID") %>' Height="128px" />
【问题讨论】:
-
不确定这个..... "reader.GetOrdinal("Photos")]" 需要一些代码
-
我刚刚使用了它,正如我在视频教程中看到的那样,它在他们身上完美地工作,不知道为什么它不能在我身上工作,因为我正确地遵循了它。