C# 数据库中存取图片(照片)及修改时的一些经验之谈

本文介绍了一种在SQL数据库中存储和读取员工照片的方法。通过使用Byte数组来处理图片,实现了图片的有效存储和快速读取。文章提供了具体的代码示例,包括如何将图片转换为Byte数组以及如何将Byte数组还原为图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  现正做一套定位系统,中间要用到员工照片问题,我做的方法是通过工具栏上保存按钮进行保存,这样的话保存就有两个状态,一种可能是添加,一种可能是修改。

所以在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;
        }

这已经完成数据库的存取操作了。

因为有个问题解决的不好,先不献丑了,我会再写一篇我做的完整解决方案的。期待下篇。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值