使用C#和Subsonic将映像保存到Sql Server映像到映像字段

时间:2011-10-24 13:55:31

标签: c# asp.net sql-server-2008 subsonic2.2

在ASP.NET应用程序中(使用框架2.0),此应用程序的ORM是Subsonic 2.2,我第一次使用它。

我有一张我从网址中检索到的图片,我有一个HttpWebresponse对象,我已将其转换为图像,如下所示:

    string uri = ...;
    HttpWebRequest lxRequest = (HttpWebRequest) WebRequest.Create(uri);
    HttpWebResponse lxResponse = (HttpWebResponse) lxRequest.GetResponse();
    System.Drawing.Image image = System.Drawing.Image.FromStream(lxResponse.GetResponseStream());

在Sql Server中,我创建了一个Image列(可以是任何其他二进制格式,这不是问题),我想把我的图像写入其中。我也想知道如何从列中读取,以便测试图像是否已正确保存。

任何帮助表示赞赏。感谢。

2 个答案:

答案 0 :(得分:1)

对于image列,Subsonic会创建byte[]属性。

因此,您必须将数据(在这种情况下为System.Drawing.Image转换为转换为字节数组。

Other sites覆盖了这个,无耻地复制了:

public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
 MemoryStream ms = new MemoryStream();
 imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
 return  ms.ToArray();
}

public Image byteArrayToImage(byte[] byteArrayIn)
{
     MemoryStream ms = new MemoryStream(byteArrayIn);
     Image returnImage = Image.FromStream(ms);
     return returnImage;
}

答案 1 :(得分:0)

已查看Read and write SQL image data,这可能会对您有所帮助