在水晶报表中查看存储在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);
现在我想在我的报告中将显示图像,但图像路径不存在,因为图像存储在数据库中!
如何查看图像?
我不确定Crystal Reporting
,但ReportViewer
我能够传递参数,这些参数只需要字符串或字符串[],所以你需要传递其中一种形式。
或者将您的图像保存为临时文件并将其加载到pictureBox
。
pictureBox1.Load("c:''temp''kitten.jpg");
或遵循此指南
http://morecoding.wordpress.com/2012/08/07/passing-mages-crystalreport-runtime/