无法显示特定用户的图像

本文关键字:用户 图像 显示 | 更新日期: 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_IDProfile_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;