Winform开发框架之字典数据管理

简介:

好久没写博客了,除了是工作较忙的原因外,其实是也一直在想如何整合我所有的开发经验及技术积累,开发过很多Winform共享软件、Asp.net的WebForm项目,发现很多东西是相互关联很紧密的,但往往我们太忙太懒,要好好整理,并整理出棒棒的一般比较难,但我们没有停步,梦想总会慢慢接近并实现。在做了很多项目之后,发现人的惰性或者惯性很大,因此有机会得好好整理下开发的成功,优化再优化,用的时候就越来越顺手了。

在所有开发过的项目过程,很多如权限管理、字典数据管理模块,都是非常常用的模块,本文主要想介绍下提炼出来,各个项目均可通用的字典数据管理系统(或者叫做模块更为适合),在介绍之前,我想介绍下我的整合路线及一些想法,如下所示:

 

其中框架中所有介绍的内容均为现有开发框架中有的东西及特性,如果要了解Winform框架的多维特点,可以现在最新的共享软件《仓库管理系统》,具体可以参考文章《从开发的软件《备件仓库管理系统》总结的一些经验》进行了解,该共享软件除了整合众多优秀的功能外,一个特点就是数据管理模块也得到了升华。

在Winform框架中,其中权限管理系统、字典管理系统,都是可以做成独立的程序来使用,而且应该可以在程序中引用来查询或者获取相关的字典数据,如找某个键值的字典列表作为下拉列表,而且由于实际项目总,有点是SqlServer、有的是Access数据库的,所以支持多数据库是最好的选择。

 

 在字典数据数据管理工程项目中,我们看到有两个不同的数据访问层,工厂模式通过不同的配置,调用不同的数据访问层,从而实现SqlServer、Access等数据库的支持,当然可以扩展更多的数据库支持,我们先来看看工程项目的视图如下所示:

 

配置文件如下所示

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="dataConfiguration"
             type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data"/>
  </configSections>
  <connectionStrings>
    <add name="DataAccess" providerName="System.Data.OleDb" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\我的应用程序\数据字典\SqlDictionary\WHC.Dictionary.UI\bin\Debug\OrderWater.mdb;User ID=Admin;Jet OLEDB:Database Password=;" />
    <add name="DataAccess2" providerName="System.Data.SqlClient"
         connectionString="Persist Security Info=False;Data Source=(local);Initial Catalog=Warehouse;User ID=sa;Password=123456"/>
  </connectionStrings>
  <dataConfiguration defaultDatabase="DataAccess"/>

  <appSettings>
    <!--软件名称-->
    <add key="ApplicationName" value="深田之星仓库管理系统"/>
    <!--开发商名称-->
    <add key="Manufacturer" value="广州爱启迪技术有限公司"/>

    <!--数据字典的数据库类型:access、sqlserver等-->
    <add key="ComponentDbType" value="access"/>
  </appSettings>

</configuration> 

我们通过DictionaryDbType来切换不同的数据库,不用修改代码实现多数据库支持,当然,不同的数据库,需要创建不同的数据库文件,不过数据库结构基本上是一致的。

我们看看该字典管理模块的最终效果,如下所示:

 

字典数据模块做成独立的程序后,一个可以独立运行,也可以在宿主程序中通过DLL方式调用类库来获取字典数据,如下所示:

         private   void  InitDictItem()
        {
            
this .txtManufacture.Items.Clear();
            
this .txtManufacture.Items.AddRange(DictItemUtil.GetDictByDictType( " 供货商 " ));

            
this .txtBigType.Items.Clear();
            
this .txtBigType.Items.AddRange(DictItemUtil.GetDictByDictType( " 备件属类 " ));

            
this .txtItemType.Items.Clear();
            
this .txtItemType.Items.AddRange(DictItemUtil.GetDictByDictType( " 备件类别 " ));

            
this .txtSource.Items.Clear();
            
this .txtSource.Items.AddRange(DictItemUtil.GetDictByDictType( " 来源 " ));


            
this .txtWareHouse.Items.Clear();
            
this .txtWareHouse.Items.AddRange(DictItemUtil.GetAllWareHouse().ToArray());

            
this .txtDept.Items.Clear();
            
this .txtDept.Items.AddRange(DictItemUtil.GetDictByDictType( " 部门 " ));
        }

字典组件模块调用例子Demo程序下载地址也一并提供下载,下载地址如下:

 http://files.cnblogs.com/wuhuacong/DictionaryDemo.rar

本文转自博客园伍华聪的博客,原文链接:Winform开发框架之字典数据管理,如需转载请自行联系原博主。



相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
目录
相关文章
|
SQL 数据管理 数据库
Python数据库访问与ORM框架:探索高效数据管理的奥秘
在当今信息爆炸的时代,高效地管理和处理海量数据成为了企业和开发者的迫切需求。本文将介绍Python中的数据库访问技术以及ORM框架(如SQLAlchemy),探索其在数据管理方面的重要作用。通过使用Python数据库访问和ORM框架,开发者可以更轻松地操作数据库、提高代码可读性和维护性,并实现高效的数据持久化和查询。
263 0
|
存储 缓存 数据管理
HarmonyOS学习路之开发篇—数据管理(轻量级数据存储)
轻量级数据存储适用于对Key-Value结构的数据进行存取和持久化操作。应用获取某个轻量级存储对象后,该存储对象中的数据将会被缓存在内存中,以便应用获得更快的数据存取速度。应用也可以将缓存的数据再次写回文本文件中进行持久化存储,由于文件读写将产生不可避免的系统资源开销,建议应用减少对持久化文件的读写频率。
|
存储 SQL NoSQL
HarmonyOS学习路之开发篇—数据管理(分布式数据服务)
分布式数据服务(Distributed Data Service,DDS) 为应用程序提供不同设备间数据库数据分布式的能力。通过调用分布式数据接口,应用程序将数据保存到分布式数据库中。通过结合帐号、应用和数据库三元组,分布式数据服务对属于不同应用的数据进行隔离,保证不同应用之间的数据不能通过分布式数据服务互相访问。在通过可信认证的设备间,分布式数据服务支持应用数据相互同步,为用户提供在多种终端设备上最终一致的数据访问体验。
|
25天前
|
存储 数据可视化 容灾
开发PACS系统的技术难点解析:从数据管理到性能优化
开发PACS系统面临多重技术与合规挑战:海量影像数据的高效存储与分层管理、高并发下的实时调阅性能、DICOM标准的深度兼容、专业级图像处理与Web化可视化、与HIS/RIS/EMR系统的无缝集成、7×24小时高可用与数据安全,以及严格的医疗设备注册与网络安全认证。需融合存储架构、协议解析、临床流程与法规合规,构建稳定可靠的临床级系统,技术壁垒极高。
139 3
|
4月前
|
自然语言处理 数据管理 数据库
告别切屏|阿里云DMS MCP+通义灵码30分钟搞定电商秒杀开发
DMS MCP+通义灵码的梦幻组合,标志着研发流程从“工具堆砌”向“智能闭环”的跃迁。通过统一数据管理、自然语言交互与自动化代码生成,开发者可专注于业务创新,而无需被琐碎的数据库操作所束缚。
告别切屏|阿里云DMS MCP+通义灵码30分钟搞定电商秒杀开发
|
4月前
|
SQL 自然语言处理 数据库
告别切屏|阿里云DMS MCP+通义灵码30分钟搞定电商秒杀开发
近日,阿里云数据管理DMS发布 开源DMS MCP Server,支持RDS、PolarDB、OLAP、NoSQL等40+主流数据源连接的多云通用数据MCP Server,一站式解决跨源数据安全访问。点击访问开源DMS MCP Server GitHub地址:https://github.com/aliyun/alibabacloud-dms-mcp-server
451 0
|
5月前
|
存储 监控 算法
解析公司屏幕监控软件中 C# 字典算法的数据管理效能与优化策略
数字化办公的时代背景下,企业为维护信息安全并提升管理效能,公司屏幕监控软件的应用日益普及。此软件犹如企业网络的 “数字卫士”,持续记录员工电脑屏幕的操作动态。然而,伴随数据量的持续增长,如何高效管理这些监控数据成为关键议题。C# 中的字典(Dictionary)数据结构,以其独特的键值对存储模式和高效的操作性能,为公司屏幕监控软件的数据管理提供了有力支持。下文将深入探究其原理与应用。
106 4
|
18天前
|
存储 JSON 数据管理
Python字典:高效数据管理的瑞士军刀
Python字典基于哈希表实现,提供接近O(1)的高效查找,支持增删改查、遍历、合并等丰富操作,广泛应用于计数、缓存、配置管理及JSON处理。其灵活性与性能使其成为数据处理的核心工具。
281 0
|
3月前
|
人工智能 关系型数据库 API
快速部署Dify on DMS,一站式开发智能体应用
Dify 是一款开源的 Agent 应用开发平台,结合后端即服务与 Agentic 工作流,支持快速构建生产级 AI 应用。无论技术背景如何,用户都能轻松参与 AI 项目与数据管理,开发企业级应用。
|
前端开发 JavaScript 小程序
基于Vue开发的门户网站展示和后台数据管理系统
基于Vue开发的门户网站展示和后台数据管理系统

热门文章

最新文章