asp.net从sqlreader显示图像

时间:2016-06-07 15:39:44

标签: c# asp.net

如何在网页上获取要从sqlreader显示的图像控件?

我有一个带有二进制数据和内容类型字段的sqlreader,但不知道如何让它显示到我页面上的图像控件。

找到了“GetStream”方法,但无法弄清楚我需要的语法。

sqlreader中的字段是: Image1,用于二进制数据 Image1Content,内容类型(image / jpg) Image1Name,用于图像名称

页面上的图像控制是“Image1”

我在后面的页面上分配其他控件,并希望对图像控件执行相同操作。

试过这个,但最后在读者[“Image1”]中收到错误:

 while (reader.Read())
                Image1.ImageUrl = reader.GetStream("data:image/jpg;base64," + Convert.ToBase64String((byte[])reader.["Image1"]));

1 个答案:

答案 0 :(得分:1)

通过多个步骤执行操作总是有帮助的,这样您就可以更清楚地看到出错的地方。你不需要GetStream()reader["Image1"],他们几乎完成了同样的事情。我将演示后者,因为我不知道索引Image1是什么:

while (reader.Read())
{
    byte[] imgBytes = (byte[])reader["Image1"];
    string encodedBytes = Convert.ToBase64String(imgBytes);
    string url = string.Concat("data:image/jpg;base64,", encodedBytes);
    Image1.ImageUrl = url;
}

但是,如果您有多行,则会在每次Read()次迭代时覆盖图像网址。我怀疑这是你打算做什么,但我不能说。我怀疑你只想打Read()一次,而不是while循环,但如果只有一行你就不会注意到差异。