无法显示特定用户的图像
本文关键字:用户 图像 显示 | 更新日期: 2023-09-27 17:59:24
我在asp.net工作,我想展示一个Profile_ID为1的用户的照片。我直接将图片以varbinary格式保存到数据库中。并在gridview中检索。我面临的问题是,当用户登录并点击"查看照片"按钮时,如果用户上传了4张不同的照片,那么同一张照片会出现四次。它并没有拍摄用户上传的所有四张照片。我正在使用handler。
这是我的表格规格:表名:(照片)列:Photo_ID、Profile_ID(外键)、Photo
下面是我的GridView代码
<asp:Image ID="Image1" runat="server" ImageUrl='<%# "ThumbNail.ashx?proid="+ Eval("Profile_ID") %>' Height="200px" Width="200px"/>
这就是我将数据绑定到网格的方式
SqlConnection connection = new SqlConnection(strCon);
SqlCommand command = new SqlCommand("SELECT Photo_ID,Profile_ID from [Photo] where Profile_ID=" +Session["profileid"], connection);
SqlDataAdapter daimages = new SqlDataAdapter(command);
DataTable dt = new DataTable();
daimages.Fill(dt);
gridview.DataSource = dt;
gridview.DataBind();
这是我正在做检索图像的主要工作的处理程序的编码
string pid = context.Request.QueryString["proid"];
string query = "select Photo from Photo where Profile_ID=" + pid;
SqlDataAdapter adpt = new SqlDataAdapter(query, connection);
DataTable dt = new DataTable();
adpt.Fill(dt);
for (int i = 0; i < dt.Rows.Count; i++)
{
context.Response.BinaryWrite((byte[])(dt.Rows[i]["Photo"]));
}
表似乎同时具有Photo_ID
和Profile_ID
,但您在处理程序中使用了Profile_ID
。
我会使用Photo_ID
作为处理程序中的参数
<%# "ThumbNail.ashx?photoid="+ Eval("Photo_ID") %>' Height="200px" Width="200px"/>
并将处理程序更新为此。
string pid = context.Request.QueryString["photoid"];
string query = "select Photo from Photo where Photo_ID=" + pid;