现正做一套定位系统,中间要用到员工照片问题,我做的方法是通过工具栏上保存按钮进行保存,这样的话保存就有两个状态,一种可能是添加,一种可能是修改。
所以在SQL数据库中做了存储过程,然后确定保存时分为三段即可实现保存。问题就在这个照片上。
从数据库 中取照片没有问题,这是我写的代码。

/**//// <summary>
/// 读取Byte流并转换为图片返回
/// </summary>
/// <param name="bytes">字节数组</param>
/// <returns></returns>
public static Image GetImageByBytes(byte[] bytes)
...{
Image imgPhoto = null;
using (MemoryStream ms = new MemoryStream(bytes))
...{
ms.Write(bytes, 0, bytes.Length);
imgPhoto = Image.FromStream(ms,true);
}
return imgPhoto;
}这样将数据库中的Image字段读入后转换为Byte[]直接传给这个方法,就可以直接用下面代码取就OK了。
pic_Employee.Image = common.GetImageByBytes(image);
pic_Employee.Refresh();然后说存同样在Common类中写入另一方法:
/// <summary>/// 将照片或图片转换为Byte[]以存入SQL数据库
/// </summary>
/// <param name="strFilePathAndName">文件路径名称</param>
/// <returns></returns>
public static byte[] GetBytesByImage(PictureBox pBox)
...{
using (FileStream fs = new FileStream(pBox.ImageLocation, FileMode.Open, FileAccess.Read))
...{
using (BinaryReader br = new BinaryReader(fs))
...{
xbyte = br.ReadBytes((int)fs.Length);
}
}
return xbyte;
}这已经完成数据库的存取操作了。
因为有个问题解决的不好,先不献丑了,我会再写一篇我做的完整解决方案的。期待下篇。。。
本文介绍了一种在SQL数据库中存储和读取员工照片的方法。通过使用Byte数组来处理图片,实现了图片的有效存储和快速读取。文章提供了具体的代码示例,包括如何将图片转换为Byte数组以及如何将Byte数组还原为图片。

被折叠的 条评论
为什么被折叠?



