新聞中心
好久沒(méi)寫(xiě)博客了,除了是工作較忙的原因外,其實(shí)是也一直在想如何整合我所有的開(kāi)發(fā)經(jīng)驗(yàn)及技術(shù)積累,開(kāi)發(fā)過(guò)很多Winform共享軟件、ASP.NET的WebForm項(xiàng)目,發(fā)現(xiàn)很多東西是相互關(guān)聯(lián)很緊密的,但往往我們太忙太懶,要好好整理,并整理出棒棒的一般比較難,但我們沒(méi)有停步,夢(mèng)想總會(huì)慢慢接近并實(shí)現(xiàn)。在做了很多項(xiàng)目之后,發(fā)現(xiàn)人的惰性或者慣性很大,因此有機(jī)會(huì)得好好整理下開(kāi)發(fā)的成功,優(yōu)化再優(yōu)化,用的時(shí)候就越來(lái)越順手了。

在所有開(kāi)發(fā)過(guò)的項(xiàng)目過(guò)程,很多如權(quán)限管理、字典數(shù)據(jù)管理模塊,都是非常常用的模塊,本文主要想介紹下提煉出來(lái),各個(gè)項(xiàng)目均可通用的字典數(shù)據(jù)管理系統(tǒng)(或者叫做模塊更為適合),在介紹之前,我想介紹下我的整合路線(xiàn)及一些想法,如下所示:
其中框架中所有介紹的內(nèi)容均為現(xiàn)有開(kāi)發(fā)框架中有的東西及特性,如果要了解Winform框架的多維特點(diǎn),可以現(xiàn)在***的共享軟件《倉(cāng)庫(kù)管理系統(tǒng)》,具體可以參考文章《從開(kāi)發(fā)的軟件《備件倉(cāng)庫(kù)管理系統(tǒng)》總結(jié)的一些經(jīng)驗(yàn)》進(jìn)行了解,該共享軟件除了整合眾多優(yōu)秀的功能外,一個(gè)特點(diǎn)就是數(shù)據(jù)管理模塊也得到了升華。
在Winform框架中,其中權(quán)限管理系統(tǒng)、字典管理系統(tǒng),都是可以做成獨(dú)立的程序來(lái)使用,而且應(yīng)該可以在程序中引用來(lái)查詢(xún)或者獲取相關(guān)的字典數(shù)據(jù),如找某個(gè)鍵值的字典列表作為下拉列表,而且由于實(shí)際項(xiàng)目總,有點(diǎn)是SqlServer、有的是Access數(shù)據(jù)庫(kù)的,所以支持多數(shù)據(jù)庫(kù)是***的選擇。
在字典數(shù)據(jù)數(shù)據(jù)管理工程項(xiàng)目中,我們看到有兩個(gè)不同的數(shù)據(jù)訪(fǎng)問(wèn)層,工廠模式通過(guò)不同的配置,調(diào)用不同的數(shù)據(jù)訪(fǎng)問(wèn)層,從而實(shí)現(xiàn)SqlServer、Access等數(shù)據(jù)庫(kù)的支持,當(dāng)然可以擴(kuò)展更多的數(shù)據(jù)庫(kù)支持,我們先來(lái)看看工程項(xiàng)目的視圖如下所示:
配置文件如下所示
- 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"/>
- 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"/>
我們通過(guò)DictionaryDbType來(lái)切換不同的數(shù)據(jù)庫(kù),不用修改代碼實(shí)現(xiàn)多數(shù)據(jù)庫(kù)支持,當(dāng)然,不同的數(shù)據(jù)庫(kù),需要?jiǎng)?chuàng)建不同的數(shù)據(jù)庫(kù)文件,不過(guò)數(shù)據(jù)庫(kù)結(jié)構(gòu)基本上是一致的。
我們看看該字典管理模塊的最終效果,如下所示:
字典數(shù)據(jù)模塊做成獨(dú)立的程序后,一個(gè)可以獨(dú)立運(yùn)行,也可以在宿主程序中通過(guò)DLL方式調(diào)用類(lèi)庫(kù)來(lái)獲取字典數(shù)據(jù),如下所示:
- private void InitDictItem()
- {
- this.txtManufacture.Items.Clear();
- this.txtManufacture.Items.AddRange(DictItemUtil.GetDictByDictType("供貨商"));
- this.txtBigType.Items.Clear();
- this.txtBigType.Items.AddRange(DictItemUtil.GetDictByDictType("備件屬類(lèi)"));
- this.txtItemType.Items.Clear();
- this.txtItemType.Items.AddRange(DictItemUtil.GetDictByDictType("備件類(lèi)別"));
- this.txtSource.Items.Clear();
- this.txtSource.Items.AddRange(DictItemUtil.GetDictByDictType("來(lái)源"));
- this.txtWareHouse.Items.Clear();
- this.txtWareHouse.Items.AddRange(DictItemUtil.GetAllWareHouse().ToArray());
- this.txtDept.Items.Clear();
- this.txtDept.Items.AddRange(DictItemUtil.GetDictByDictType("部門(mén)"));
- }
字典組件模塊調(diào)用例子Demo程序下載地址也一并提供下載,下載地址如下:
http://files.cnblogs.com/wuhuacong/DictionaryDemo.rar
分享標(biāo)題:Winform框架之字典數(shù)據(jù)管理
分享URL:http://www.fisionsoft.com.cn/article/ccogpcd.html


咨詢(xún)
建站咨詢(xún)
