如何在网页上获取要从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"]));
答案 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
循环,但如果只有一行你就不会注意到差异。