Winform框架之字典数据管理

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
简介:

好久没写博客了,除了是工作较忙的原因外,其实是也一直在想如何整合我所有的开发经验及技术积累,开发过很多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"/>type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data"/>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:我的应用程序数据字典SqlDictionaryWHC.Dictionary.UIinDebugOrderWater.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"/>connectionString="Persist Security Info=False;Data Source=(local);Initial Catalog=Warehouse;User ID=sa;Password=123456"/>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


    本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

    相关实践学习
    MySQL基础-学生管理系统数据库设计
    本场景介绍如何使用DMS工具连接RDS,并使用DMS图形化工具创建数据库表。
    目录
    相关文章
    |
    9月前
    |
    SQL 数据管理 数据库
    Python数据库访问与ORM框架:探索高效数据管理的奥秘
    在当今信息爆炸的时代,高效地管理和处理海量数据成为了企业和开发者的迫切需求。本文将介绍Python中的数据库访问技术以及ORM框架(如SQLAlchemy),探索其在数据管理方面的重要作用。通过使用Python数据库访问和ORM框架,开发者可以更轻松地操作数据库、提高代码可读性和维护性,并实现高效的数据持久化和查询。
    188 0
    |
    9月前
    |
    安全 数据管理 测试技术
    网络安全与信息安全:防范漏洞、加强加密与提升安全意识深入探索自动化测试框架的设计原则与实践应用化测试解决方案。文章不仅涵盖了框架选择的标准,还详细阐述了如何根据项目需求定制测试流程,以及如何利用持续集成工具实现测试的自动触发和结果反馈。最后,文中还将讨论测试数据管理、测试用例优化及团队协作等关键问题,为读者提供全面的自动化测试框架设计与实施指南。
    【5月更文挑战第27天】 在数字化时代,网络安全与信息安全已成为维护国家安全、企业利益和个人隐私的重要环节。本文旨在分享关于网络安全漏洞的识别与防范、加密技术的应用以及提升安全意识的重要性。通过对这些方面的深入探讨,我们希望能为读者提供一些实用的建议和策略,以应对日益严峻的网络安全挑战。 【5月更文挑战第27天】 在软件开发周期中,自动化测试作为保障软件质量的关键步骤,其重要性日益凸显。本文旨在剖析自动化测试框架设计的核心原则,并结合具体案例探讨其在实际应用中的执行策略。通过对比分析不同测试框架的优缺点,我们提出一套高效、可扩展且易于维护的自动
    |
    9月前
    |
    前端开发 Java 数据管理
    javaWeb基于SSM框架开发的社区医疗数据管理系统【项目源码+数据库脚本+报告】
    javaWeb基于SSM框架开发的社区医疗数据管理系统【项目源码+数据库脚本+报告】
    129 0
    |
    数据管理 PHP 容器
    layui框架实战案例(2):LayUI表格与Echarts图表交互展示及PHP后台数据管理(搜索、翻页、动态显示)
    layui框架实战案例(2):LayUI表格与Echarts图表交互展示及PHP后台数据管理(搜索、翻页、动态显示)
    571 0
    |
    数据采集 数据可视化 前端开发
    漏刻有时数据可视化大屏核心完整版框架PHP后台数据管理 API数据接口 Echarts图表库 自带电脑端和手机端两套模版且支持自定义前端模版开发
    漏刻有时数据可视化大屏核心完整版框架PHP后台数据管理 API数据接口 Echarts图表库 自带电脑端和手机端两套模版且支持自定义前端模版开发
    236 0
    |
    监控 数据可视化 前端开发
    漏刻有时LOCKDATA数据可视化大屏核心框架模版 带PHP后台数据管理 含2套Echarts模版
    漏刻有时LOCKDATA数据可视化大屏核心框架模版 带PHP后台数据管理 含2套Echarts模版
    122 0
    |
    存储 缓存 数据管理
    iOS中CoreData数据管理系列二——CoreData框架中三个重要的类
    iOS中CoreData数据管理系列二——CoreData框架中三个重要的类
    258 0
    |
    数据库 数据管理 开发框架