Winform快速开发框架之存储图片资源解决方案|C/S框架网
Winform快速开发框架之存储图片资源解决方案|C/S框架网
我们在开发大型软件系统时,经常会遇到存储图片资源的需求,终端用户需要提交本地图片到应用服务器或数据库服务器。有些用户将图片资源存储在当前业务表(添加图片字段,与业务数据同级提交),这种做法将给软件系统带来很大麻烦,如:查询时系统响应慢、程序固化、不利于维护和扩展。 本文作者曾使用以下几种图片存储策略: 1. 存在独立的资料表(如:dt_Image),与系统结合紧密度最高,实现最简单。 2. 访问IIS服务器,使用URL方式访问图片,需要部署IIS服务器,客户端要能访问IIS服务器。 3. 本机缓存机制+在线单个图片动态获取。 4. FTP服务器,阿里OSS存储等。 使用独立图片表存储图片资源有以下优势: 1.图片资源与业务数据完全分离。 2.图片资源可以跨服务器部署、可扩展支持其它图片存储策略。 3.与系统结合紧密度最高,实现简单,代码复用。 4.易维护性。 本文将阐述在VS开发环境下使用ADO.NET组件+标准三层逻辑架构独立存储图片解决方案,与表格中展示图片资源略有不同,图片组件是VS自带的PictureEdit,在界面中固定图片尺寸和组件数量,而不是表格中ColumnEdit绑定RepositoryItemPictureEdit组件。 本文示例采用继承frmBaseDataDictionary基类的数据字段窗体,图片表作为当前记录的明细表。 界面效果图: 部分源码参考: C# Code: //数据采集-创建用于保存的数据集 private DataSet CreateSaveData() { _BLLInstance.DataBinderRow.EndEdit(); DataSet ds = new DataSet(); //收集主表 ds.Tables.Add(_BLLInstance.DataBinder.Copy()); //收集图片明细表 DataTable dtImg = _BLLIMG.GetImageDataRow("-"); AddImage(dtImg, pic1); AddImage(dtImg, pic2); AddImage(dtImg, pic3); if (dtImg.Rows.Count > 0) ds.Tables.Add(dtImg.Copy()); return ds; } //来源:C/S框架网(www.csframework.com) QQ:23404761 C# Code: //从剪贴板粘贴图片 private void menuPOP_Paster_Click(object sender, EventArgs e) { if (_CurrentImage != null) { Image img = Clipboard.GetImage(); if (img != null) this.SetImage(_CurrentImage, img); } } //来源:C/S框架网(www.csframework.com) QQ:23404761 C# Code: //删除图片 private void menuPOP_Del_Click(object sender, EventArgs e) { if (_CurrentImage == null || _CurrentImage.Tag == null) return; if (Msg.AskQuestion("确定要删除图片吗?")) { DataRow R = _CurrentImage.Tag as DataRow; //直接从后台删除 if (R.RowState != DataRowState.Added) { string ImgID = R[dt_Image.ImgID].ToString(); if (_BLLIMG.Delete(ImgID)) { _CurrentImage.Tag = null; _CurrentImage.Image = null; Msg.ShowInformation("成功删除图片!"); } else Msg.Warning("删除图片失败!"); } } } //来源:C/S框架网(www.csframework.com) QQ:23404761 相关文档:Winform+DevExpress框架之独立图片存储解决方案|C/S框架网 VIP用户下载源码(源码适用CSFrameworkV4.x企业版,V5.x旗舰版)
参考文档:
原创.NET快速开发框架|C/S框架网 关于C/S框架网C#.NET快速开发框架现场培训 快速软件开发框架|C/S框架网钜献 关于C/S快速开发框架采用的文本加密解密策略|C/S框架网 C# Winform增删查改快速开发框架|C/S框架网 C/SWinform快速开发框架旗舰版V5 - 超酷炫UI珠宝行业MES/ERP系统成功案例2019 企业级开发架构.NET快速开发框架-C/S框架网 NET开发框架,基于ADO.NET数据持久化快速开发框架平台-C/S框架网原创产品 开源ERP软件平台ERP系统快速开发框架 - C/S框架网原创作品 Winform快速开发框架平台代码生成器核心优势 Winform快速开发框架-表格支持用户自定义样式(自由配置列栏目) Winform企业级WCF快速开发框架平台(C/S架构+WCF+DevExpress+SQL多数据库) 物流运输管理系统TMS成功案例-CSFramework快速开发框架(Winform+C/S+SQLServer) 公司管理系统框架 - 基于C/S结构Winform快速开发框架 数据库信息管理开发平台 - C/S结构+Winform+ADO.NET快速开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |