<?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