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"/>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/

时间: 2024-11-01 20:57:02

Winform框架之字典数据管理的相关文章

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

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

Database2Sharp之混合型Winform框架代码生成

本人一直致力于Winform开发框架的研究和使用,有时候项目要求是传统Winform的,直接访问数据库进行获取数据:有的时候项目要求WCF框架,以分布式访问WCF服务获取数据的,虽然在Winform和WCF框架,都有特定的应用场景和开发思路,但是希望把这两种传统式的框架,加以抽象和提炼,形成目前所介绍的混合型框架,这样所有完成混合型框架改造的通用模块(或一个小业务模块),都能无缝式的实现集成使用.这种混合型框架的特点和优点都非常明显,为我最终实现,一个框架,多个应用的开发平台集成方案迈出坚实的一

在Winform框架界面中改变并存储界面皮肤样式

在本篇介绍的Winform界面样式改变及存储操作中,是指基于DevExpress进行界面样式的变化.一般情况下,默认我们会为客户提供多种DevExpress的界面皮肤以供个人喜好选择,默认DevExpress提供40余种皮肤样式,用户可以根据自己的喜好,选择较为美观.得体的皮肤,为了方便,我们对用户的皮肤选择进行记录,并可以动态改变. 1.界面皮肤的选择 Winform开发框架(包括混合式Winform开发框架)皮肤如下界面所示. 在皮肤集合中打开,可以看到很多界面皮肤可供选择 上面初始化的皮肤

Database2Sharp重要更新之生成Winform框架界面代码

Database2Sharp是一款代码生成工具和数据库文档生成工具,该工具一直伴随着我及我的粉丝们经历过各种各样的项目开发,在实际开发中能带来效率的提高及编程的快乐.不过自上个6.0版本以来,我一直忙于各种项目及研究中,很少继续把新的思想整合进去,最近在做我的Winform开发框架的整理工作,觉得应该改进这段时间来发现的问题,并融入已经逐渐完善的Winform开发框架基础上来,于是经过几天的努力,把该代码生成工具的一些缺陷修复并增加了Winform界面代码生成的功能(以前一直只是生成底层及Web

iOS App开发中Core Data框架基本的数据管理功能小结_IOS

一.何为CoreDataCoreData是一个专门用来管理数据的框架,其在性能与书写方便上都有很大的优势,在数据库管理方面,apple强烈推荐开发者使用CoreData框架,在apple的官方文档中称,使用CoreData框架可以减少开发者50%--70%的代码量,这虽然有些夸张,但由此可见,CoreData的确十分强大. 二.设计数据模型在iOS开发中,时常使用SQL数据库对大量的表结构数据进行处理,但是SQL有一个十分明显的缺陷,对于常规数据模型的表,其处理起来是没问题的,例如一个班级表,其

Navi.Soft31.WinForm框架(含下载地址)

1概述 1.1应用场景 尽管互联网高速发展,互联网软件也随之越来越多,但桌面应用程序在某些领域中还是不可替代,如MIS,ERP,CRM等软件产品,同时,这类软件均包括一些通用的功能,如:与数据库操作,日志管理,权限管理等 本框架指在解决这些问题,并将通用的功能抽离并实现.使在开发过程中,将更多的精力放在业务逻辑 1.2面向对象 Net程序开发员 1.3开发环境 开发环境 描述 VS2012或以上 整个框架只有此一个解决方案.Net类库版本是4.0 EntityFramework 版本6.0 My

Navi.Soft31.微信WinForm框架(含下载地址)

1.概述 1.1应用场景 微信的出现,改变了我们日常生活.而微信公众平台的出现,使我们每个人都可能成为一个品牌,微商的普及.微店越来越多.越来越多的人,借助微信公众平台,实现了自己的梦想 在此背景环境下,开发出基于微信公众平台的一套框架,方便开发员二次开发,也可以直接使用. 1.2面向对象 Net程序开发员 1.3开发环境 开发环境 描述 VS2012或以上 整个框架只有此一个解决方案.Net类库版本是4.0 EntityFramework 版本6.0 MySql数据库 版本是5.6 SQLit

一个winform框架需要考虑那些问题?没分了

问题描述 由于个人想开发一套C/S结构的框架程序,请教高手们我需要考虑那些问题?有什么思路和好的想法没,或则是你们以前设计没考虑到的,我好借鉴一下,不知道大家可否赐教 解决方案 解决方案二:开发框架需要考虑很全面的东西比如地层界面消息响应等等.楼主我挺你.解决方案三:部署.方便升级权限.支持不同的角色的用户加载不同的功能安全.登录的安全性检查扩展性.容易扩展,如支持插件功能等松耦合.框架要与关联的具体功能耦合度降低,在代码级别上应可以分离部署.一下子就能想到这么多.解决方案四:恩,虚心学习

Winform开发框架之通用自动更新模块

在网络化的环境中,特别是基于互联网发布的Winform程序,程序的自动更新功能是比较重要的操作,这样可以避免挨个给使用者打电话.发信息通知或者发送软件等,要求其对应用程序进行升级.实现程序的自动更新,在后期发布维护过程中,一个可以快速相应修正相关的Bug或者增加功能,二个可以避免给使用客户隔三差五的发送修改好的程序,省心省力.本文也是基于这个思想,在Winform开发框架中再引入一个自动升级更新的通用模块,这个自动升级的通用模块除了具备一般的功能外,可以通过配置程序标题.升级路径方式等方式,实现