Winform框架之字典数据管理

开发 后端 数据管理
今天我们将谈到的是Winform开发框架中字典数据管理,在字典数据数据管理工程项目中,我们看到有两个不同的数据访问层,工厂模式通过不同的配置,调用不同的数据访问层。

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

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

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

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

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

配置文件如下所示

  1.   <?xml version="1.0" encoding="utf-8" ?> 
  2.   <configuration> 
  3.   <configSections> 
  4.   <section name="dataConfiguration" 
  5. 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"/> 
  6.   </configSections> 
  7.   <connectionStrings> 
  8.   <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=;" /> 
  9.   <add name="DataAccess2" providerName="System.Data.SqlClient" 
  10. 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"/> 
  11.   </connectionStrings> 
  12.   <dataConfiguration defaultDatabase="DataAccess"/> 
  13.   <appSettings> 
  14.   <!--软件名称--> 
  15.   <add key="ApplicationName" value="深田之星仓库管理系统"/> 
  16.   <!--开发商名称--> 
  17.   <add key="Manufacturer" value="广州爱启迪技术有限公司"/> 
  18.   <!--数据字典的数据库类型:access、sqlserver等--> 
  19.   <add key="ComponentDbType" value="access"/> 
  20.  </appSettings> 
  21.   </configuration> 

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

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

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

  1.   private void InitDictItem()  
  2.   {  
  3.   this.txtManufacture.Items.Clear();  
  4.   this.txtManufacture.Items.AddRange(DictItemUtil.GetDictByDictType("供货商"));  
  5.   this.txtBigType.Items.Clear();  
  6.   this.txtBigType.Items.AddRange(DictItemUtil.GetDictByDictType("备件属类"));  
  7.   this.txtItemType.Items.Clear();  
  8.   this.txtItemType.Items.AddRange(DictItemUtil.GetDictByDictType("备件类别"));  
  9.   this.txtSource.Items.Clear();  
  10.   this.txtSource.Items.AddRange(DictItemUtil.GetDictByDictType("来源"));  
  11.   this.txtWareHouse.Items.Clear();  
  12.   this.txtWareHouse.Items.AddRange(DictItemUtil.GetAllWareHouse().ToArray());  
  13.   this.txtDept.Items.Clear();  
  14.   this.txtDept.Items.AddRange(DictItemUtil.GetDictByDictType("部门"));  
  15.   } 

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

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

【编辑推荐】

  1. 浅谈ASP.NET 4.0 SEO增强中的UrlRouting
  2. WPF与WinForm对比谈 多线程编程优化是关键
  3. 详解Winform多线程编程基本原理
  4. 实战ASP.NET大规模网站架构:Web加速器
  5. 专家畅谈ASP.NET与PHP的未来
责任编辑:彭凡 来源: 博客园
相关推荐

2012-12-11 10:15:02

Winform开发框架

2023-01-04 09:54:02

2012-08-21 11:26:17

Winform

2023-04-28 07:34:35

数据管理数据资产管理

2013-04-23 09:31:12

Winform开发框架

2022-05-24 15:06:57

AbilityeTS FA鸿蒙

2019-12-06 10:29:29

云原生数据公共云

2023-10-31 07:06:50

运营数据管理

2022-08-31 12:26:37

数据管理CDMC

2011-11-23 09:47:36

Winform

2022-05-29 22:56:13

数据安全元数据

2013-10-31 09:19:42

混合云混合云数据管理Data

2016-11-04 12:46:25

2017-01-05 18:35:57

数据管理数据治理

2018-07-02 09:59:33

数据管理IT

2020-11-15 23:37:06

数据管理医疗保健数据数据库

2022-12-14 14:33:43

云数据管理云计算

2012-10-09 10:44:49

大数据管理大数据服务器

2024-02-26 09:15:05

2011-03-28 19:50:48

ibmdwDB2MDM
点赞
收藏

51CTO技术栈公众号