代码之家  ›  专栏  ›  技术社区  ›  Geeth

从SQL Server数据库检索图像

  •  2
  • Geeth  · 技术社区  · 15 年前

    我正在将图像存储到数据库中。如何从数据库中检索所有图像。

    例如:从ImageTable中选择图像

    问题:

    数据逻辑:

               while (dr.Read())
              {
                 ///Check for null
                  if (!dr.IsDBNull(0))
                 {
                    try
                    {
                        ///Converting the image into bitmap
                        byte[] photo = (byte[])dr[0];
                        ms = new MemoryStream(photo);
                        Bitmap bm = new Bitmap(ms);
                        bmp[i] = bm;
    
                        ms.Close();
    
                    }
                    catch (Exception ex)
                    {
    
                    }
                }
    

    ASpx.CS page:

    Bitmap[] bm= photos.GetImage();
        for (int i = 0; i < bm.Length; i++)
        {
      MemoryStream ms = new MemoryStream();
    
            **bm[i].Save(ms, ImageFormat.Jpeg);**(Error : A generic error occurred in GDI+.)
    
    htmlCode.Append("<li><img ImageUrl=\\\"");
    htmlCode.Append(**ms.GetBuffer()**);
    htmlCode.Append("\" alt=\"\" width=\"100\" height=\"100\"></li>");
    }
    

    图像无法显示

    吉萨

    4 回复  |  直到 15 年前
        1
  •  8
  •   Yevhen    15 年前

    这是来自SQL Server的示例

            connection.Open();
            SqlCommand command1 = new SqlCommand("select imgfile from myimages where imgname=@param", connection);
            SqlParameter myparam = command1.Parameters.Add("@param", SqlDbType.NVarChar, 30);
            myparam.Value = txtimgname.Text;
            byte[] img = (byte[])command1.ExecuteScalar();
            MemoryStream str = new MemoryStream();
            str.Write(img, 0, img.Length);
            Bitmap bit = new Bitmap(str);
            connection.Close();
    

    看这里 http://www.akadia.com/services/dotnet_read_write_blob.html

        2
  •  4
  •   Community Bayu Bramantya    7 年前

    对于SQL Server 2008以后的版本,几乎可以肯定的是,使用文件流。

    请参阅: SQL Server 2005 - How do I convert image data type to character format

        3
  •  1
  •   Fitzchak Yitzchaki    15 年前

    您需要从数据库中获取二进制数据,然后将二进制数据作为图像传输到浏览器。

        4
  •  0
  •   cjk    15 年前

    您正在将图像的URL设置为字节流-您需要将图像保存到硬盘并提供位置。

    一个更好的方法是将图像URL设置为具有参数的资源处理程序,然后可以从数据库中检索图像并将其作为流返回到浏览器。