【问题标题】:Images are not displayed in gridview in VS 2010 when retrieved from SQL从 SQL 检索图像时,VS 2010 中的 gridview 中不显示图像
【发布时间】:2012-08-24 11:42:43
【问题描述】:

我正在尝试从具有 ID、名称和图像的图像表中提取数据。我认为图像存储为字节,它的图像数据类型。但是,我看不到正在显示的图像,而是一个小的错误图标。输出截图如下。请您帮忙更正并显示图像。我是新手:(

我使用此代码。我想调整它以将二进制解码图像放入名为 Image 的第三个 gridview 列中。我使用了 ImageField。我没有使用任何模板,因为我看到项目模板在 VS 2010 编辑器中已过时。

  conn.Open();  
  // open the connection 
  SqlDataAdapter Sqa = new SqlDataAdapter("select * from Images", conn);
  DataTable ds = new DataTable();
  Sqa.Fill(ds);   // fill the dataset 
  for (int i = 0; i < ds.Rows.Count; i++)
  {
      MemoryStream ms = new MemoryStream((byte[])ds.Rows[i]["Image"]);
  }
  GridView1.DataSource = ds; // give data to GridView
  GridView1.DataBind();
  conn.Close();
  GridView1.Visible = true;

【问题讨论】:

    标签: c# asp.net sql visual-studio-2010 gridview


    【解决方案1】:

    这不是您想要的显示图像的方式。目前,您正在将 gridview 字节数组作为图像列的源。但是gridview不知道这个数组是一个图像。如果您将数据源设置为图像链接数组会更好,并且图像本身将通过单独的请求从数据库中请求。 Http 处理程序适合此解决方案。

    看看this article

    【讨论】:

    • 您好,谢谢。哦,我的....实际上,您给我的链接对我来说看起来像是希腊语和拉丁语。我是新手 :( 请问现在有什么快速的解决方案吗,我需要尽快给它 :( 然后我可以采用最佳实践。
    • 不幸的是,它无法按照您的方式工作。处理程序是最简单的方法。由于 http 响应只有一种 mime 类型,因此对图像的请求必须与页面本身的请求分开。
    • 约翰尼,谢谢你,但恐怕我什么都不懂。我是新手 :( 是否有适合我情况的快速解决方案或小代码。
    • 抱歉,这是我所知道的最简单的方法。花几个小时阅读有关处理程序和 http 图像处理程序的信息,它并不像看起来那么可怕。
    • Johnny,非常感谢,我终于通过一个非常有用的视频实现了它。现在我明白了,学到了一些东西:) 兴奋。非常感谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多