【问题标题】:How to display employeephoto from database on listbox item click如何在列表框项目单击上显示数据库中的员工照片
【发布时间】:2013-10-02 17:25:16
【问题描述】:

我有一个检索员工数据的列表框,当我单击员工时,我会得到他的名字、姓氏和他的照片。

我做了一切,直到显示来自数据库的图像。我在下面有这段代码。当我单击列表框中的员工姓名时,我也想加载并显示他的照片和他的名字。 (SQL 列 EmployeePhoto 是“图像”类型,我成功地将员工图像作为二进制插入。

在堆栈中抓取了这个主题,但没有找到我能理解的有用解决方案。需要您的帮助,谢谢。

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;
        }
    }

【问题讨论】:

  • 为什么要修复列表框?

标签: c# asp.net listbox


【解决方案1】:

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

【讨论】:

  • 谢谢,我认为现在将照片保存到文件夹中对我来说更好。
【解决方案2】:

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

Image Handling In ASP.NET

例如,

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"

【讨论】:

  • 这太复杂了,因为我不知道如何将它绑定到我的列表框选择中
  • 为什么要投票? OP 说图像存储在数据库中,因此 ImageHandler 是显示数据库中二进制图像的正确方法。
  • 我没有投反对票 :) 我什至没有足够的声誉来投反对票。 :)
【解决方案3】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    相关资源
    最近更新 更多