C# 如何在列表框项目上显示数据库中的employeephoto单击

C# 如何在列表框项目上显示数据库中的employeephoto单击,c#,asp.net,listbox,C#,Asp.net,Listbox,我有一个列表框可以检索employeedata,当我点击employee时,我会得到他的名字、姓氏和照片 在显示数据库中的图像之前,我做了所有的事情。我有下面的代码。当我点击列表框中的employeename时,我想加载并显示他的照片以及他的名字。 (SQL列EmployeePhoto是“image”类型,在这里我成功地将员工图像作为二进制文件插入 已在堆栈中爬网此主题,但未找到我能理解的有用解决方案。需要您的帮助,谢谢 protected void ListBox1_SelectedIndex

我有一个列表框可以检索employeedata,当我点击employee时,我会得到他的名字、姓氏和照片

在显示数据库中的图像之前,我做了所有的事情。我有下面的代码。当我点击列表框中的employeename时,我想加载并显示他的照片以及他的名字。 (SQL列EmployeePhoto是“image”类型,在这里我成功地将员工图像作为二进制文件插入

已在堆栈中爬网此主题,但未找到我能理解的有用解决方案。需要您的帮助,谢谢

protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e) //select listbox item
        {

          try
          {
            cnn.Open();
            SqlCommand cmd = new SqlCommand("SELECT EmployeeFirstName,EmployeeLastName,EmployeePhoto FROM Employees WHERE EmployeeID = @myvalue", cnn);
            cmd.Parameters.AddWithValue("@myvalue", (ListBox1.SelectedValue));
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.HasRows)
            {
                while (dr.Read())
                {
                    TextBox1.Text = dr.GetString(0);
                    TextBox2.Text = dr.GetString(1);

                    //want to display EmployeePhoto in ID:Image1 that was saved as binary

                }
            }
            cnn.Close();
        }
        catch (Exception ex)
        {
            Label1.Text = ex.Message;
        }
    }

我会将图像保存到文件系统(使用
file.writealBytes()
),然后在图像框中显示文件系统中的文件。

您需要图像处理程序(ASHX)才能在浏览器中显示二进制数据

比如说,

using System;
using System.Web;

public class ImageHandler : IHttpHandler, IReadOnlySessionState
{     
    public void ProcessRequest(HttpContext context)
    {
        // Query image data from database based on query string value.
        context.Response.BinaryWrite(YourImageByte);
    }

    public bool IsReusable {
        get { return false; }
    }

}

// Usage
Image1.ImageUrl ="ImageHandler.ashx?id=5"

您应该使用
ListView
控件,而不是
ListBox


ListViewiItem有一个
ImageIndex
属性,允许您指定要从中渲染的图像的索引(它还支持绑定)

这太复杂了,因为我不知道如何将其绑定到我的列表框选择中为什么要下票?OP说图像存储在数据库中,所以ImageHandler是显示数据库中二进制图像的正确方法。我没有下票:)我甚至没有足够的声誉来下票。:)谢谢,我觉得现在把照片保存到文件夹里对我来说更好。你为什么对listbox有兴趣?