ASP.NET C#从SQL Server数据库中获取并显示图像

本文关键字:获取 显示 显示图 图像 数据库 NET SQL Server ASP | 更新日期: 2023-09-27 18:27:25

我想从SQL Server数据库中检索一个映像并显示在Image工具中。

我有这个代码

<asp:Image ID="Image1" runat="server" CssClass="style2" Height="166px" Width="488px" />

SqlConnection connect = null;
string connectstring = "Data Source=.''SQLEXPRESS;Initial Catalog=teste;Integrated Security=true;pooling=false";
connect = new SqlConnection(connectstring);
connect.Open();
string Scmd = "SELECT id, imagem where id = 2";
SqlCommand cmd = new SqlCommand(Scmd, connect);
SqlDataReader reader = cmd.ExecuteReader();
reader.Read();
if (reader.HasRows)
{
    Label1.Text = reader[0].ToString();                        
    byte[] imagem = (byte[])(reader[1]);
    MemoryStream ms = new MemoryStream(imagem);
    Image1.ImageUrl = ms.FromStream(ms); //i tried this
}

但我不能这样做:

Image1.ImageUrl = ms.FromStream(ms);

因为我犯了一个错误。

有人能帮我吗?我唯一的问题是显示图像。

请帮忙,谢谢。

ASP.NET C#从SQL Server数据库中获取并显示图像

您可以从字节数组中生成base64string,并将其用作内联图像源。

  1. 转换为base64string。请参阅此
byte[] imagem = (byte[])(reader[1]);
string base64String = Convert.ToBase64String(imagem) ;
  1. 使用此字符串作为内联图像,如下所示。请参阅此

Image1.ImageUrl = String.Format("data:image/jpg;base64,{0}",base64String);

假设:图像保存为jpg

如果不同,则在步骤2中更改行。

免责声明:Base64string作为图像适合小尺寸的图像,但如果我们有更大的图像,那么产生的字符串将有大尺寸的字符串。优点是,浏览器不必为每个图像多次请求(如果您将其实现为image.src= "http://handler-to-image")。