在水晶报表中查看存储在SQL Server中的图像

本文关键字:Server 图像 SQL 水晶 报表 存储 | 更新日期: 2023-09-27 18:01:40

在我的数据库中,我有一个包含图像列的表。

列类型为text

当在数据库中保存图像时,将转换为文本。

我的代码是:
Image selectedImage = Image.FromFile(openFileDialog.FileName);
MemoryStream tmpStream = new MemoryStream();
selectedImage.Save(tmpStream, ImageFormat.Jpeg); // change to other format
tmpStream.Seek(0, SeekOrigin.Begin);
Byte[] BytesOfImage = tmpStream.ToArray();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < BytesOfImage.Length - 1; i++)
{
    sb.Append(BytesOfImage[i] + ",");
}
sb.Append(BytesOfImage[BytesOfImage.Length - 1]);
sb.ToString(); // sb.ToString() ==> Save to sql server

然后将字符串转换为照片,我使用以下代码:

String[] split = strImage.Split(',');
Byte[] bytes = new Byte[split.Length];
Byte b;
for (int i = 0; i < split.Length; i++)
{
    Byte.TryParse(split[i], out b);
    bytes[i] = b;
}
MemoryStream tmpStream = new MemoryStream();
tmpStream.Write(bytes, 0, bytes.Length);
tmpStream.Seek(0, SeekOrigin.Begin);
Image img = Image.FromStream(tmpStream);

现在我想在我的报告中将显示图像,但图像路径不存在,因为图像存储在数据库中!

如何查看图像?

在水晶报表中查看存储在SQL Server中的图像

我不确定Crystal Reporting,但ReportViewer我能够传递参数,这些参数只需要字符串或字符串[],所以你需要传递其中一种形式。

或者将您的图像保存为临时文件并将其加载到pictureBox

pictureBox1.Load("c:''temp''kitten.jpg");

或遵循此指南

http://morecoding.wordpress.com/2012/08/07/passing-mages-crystalreport-runtime/