C# Win Form 编程实现图片的数据库存储

一般来讲涉及到图片的存储,普遍做法是采用数据库存储图片在服务器端的存储路径(物理路径+文件名称)。在需要sh使用图片时从数据库读取路径之后进行图片的操作即可。该方法的主要问题在于存储图片时需要单独编写文件的上传功能,需要一定的代码编写量。于此同时大部分关系型数据库本身也包含了image图片类型。允许开发者将图片作为数据类型直接存储到数据库,针对海量数据存储,普遍认为该方法效率较低、成本较高。但对数据量较小时,使用数据库进行图片的存储也是可以选择使用的方法。该方法直接读取图片资源写入数据库即可,与第一种方法相比较避免了单独编写图片上传的操作,减少了代码编写量。本文主要对数据库存储图片实现进行说明,为初学者简单讲解实现的核心操作与代码。为演示操作给出数据存储的form窗口,窗口如下:

C# Win Form 编程实现图片的数据库存储

演示Form


如上图所示,我们希望借助数据表存储选手注册信息,在所存储的字段中包含了用户的照片,该字段数据类型选择使用image。通过openfiledialog方法选择照片并将路径写入对应TextBox中。其中选择按钮消息处理实现代码如下:

 OpenFileDialog dia = new OpenFileDialog();
if(dia.ShowDialog()==DialogResult.OK)
{
this.userpic.Text = dia.FileName;
}

注册按钮实现部分主要是获取窗口各控件值,在进行判断之后连接数据库,实现各类数据的存储。提交注册按钮事件部分代码描述如下:

C# Win Form 编程实现图片的数据库存储

读取图片并存储数据库


以上给出图片存储数据库的方法、思路与部分核心代码,在实现数据存储之后,可根据实际情况调用数据库中存储的Image图片资源并进行显示。本文给出参考Form对图片资源显示进行说明。Form截图如下图所示:

C# Win Form 编程实现图片的数据库存储

IMage图片数据库读取(图片来源互联网,侵权联系删除)

select * from [user] where user_id='" + this.user_id + "'"//定义查询语句ds为记录集 

if (dr["user_image"] != DBNull.Value)//读取user_image字段并写入数组
{
byte[] uimage = (byte[])dr["user_image"];
MemoryStream stream = new MemoryStream(uimage);//写入内存流
image = Image.FromStream(stream);//
this.pictureBox1.Image = image;//与控件关联
}

以上给出数据库存储图片类型数据并通过C#语言进行读写操作实现的部分核心代码,如有问题建议与意见联系作者共同探讨,往期文章请点击链接阅读:


本头条号长期关注于青少年编程资讯分享;编程课程、素材、代码分享及青少年编程培训。如果您对以上方面有兴趣,可关注该头条号,如有编程学习问题可以联系作者,共同探讨。


分享到:


相關文章: