C#存取图片到数据库

 

Winform 显示及浏览图片大多使用 PictureBox 控件来做载体。

存储图片到数据库:从本地文件夹下选择图片文件加载到 PictureBox ,再从 PictureBox 读取图片数据转化成二进制流存储入数据库。

PictureBox 控件: pic_Photo   

        // 装载照片

        private void tsm_Load_Click(object sender, EventArgs e)

        {

            OpenFileDialog dia_Image = new OpenFileDialog ();

            dia_Image.Filter = " 所有(*.jpg,*.gif,*.jpeg)|*.jpg;*.gif;*.jpeg" ;

           

            if (dia_Image.ShowDialog() == DialogResult .OK)

            {

              

                pic_Photo.Image = Image .FromFile(dia_Image.FileName);

            }

        }

OpenFileDialog 类的 Filter 用法:

dia_Image.Filter = " 所有(*.jpg,*.gif,*.jpeg)|*.jpg;*.gif;*.jpeg" ;

格式:文件类型所明 | 真正需要过滤的文件类型。

如果有多种文件类型,就用分号隔开。

 

上面的程序做完后,在 pictureBox 中就会显示本地文件中加载的图片,这样就相当于图片预览的效果了。

 

接下来就是从 pictureBox 中将图片转化成二制流存储进数据库中,当然数据库该字段的类型应定义为 Image 类型,程序该参数相应的定义为 SqlDbType.Image 类型。

 

            // 照片读取入数据库

            MemoryStream ms=new MemoryStream () ;

            byte [] photoByte;

 

            pic_Photo.Image.Save(ms, pic_Photo.Image.RawFormat);

            photoByte = new byte [ms.Length];

            ms.Position = 0;

            ms.Read(photoByte, 0, Convert .ToInt32(ms.Length));

            data.Photo = photoByte;

这边的 data.Photo 是定义的一个实体类中的成员,类型为 byte[]

 

从数据库读取数据到 PictureBox 中显示:

数据访问层 DAL 从数据库获取数据代码

if (ds.Tables[0].Rows[0]["Photo" ]!=DBNull.Value)

                {

                    data.Photo = (byte [])ds.Tables[0].Rows[0]["Photo" ];

                }

在表示层将读取的数据显示到 pictureBox 中以展示给客户。

byte [] picByte = data.Photo;

            MemoryStream ms=new MemoryStream ();

            ms.Write(picByte, 0, picByte.Length);

            pic_Photo.Image = Image .FromStream(ms);

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值