qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          Winform框架之字典數(shù)據(jù)管理

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

            在所有開發(fā)過的項目過程,很多如權(quán)限管理、字典數(shù)據(jù)管理模塊,都是非常常用的模塊,本文主要想介紹下提煉出來,各個項目均可通用的字典數(shù)據(jù)管理系統(tǒng)(或者叫做模塊更為適合),在介紹之前,我想介紹下我的整合路線及一些想法,如下所示:

            其中框架中所有介紹的內(nèi)容均為現(xiàn)有開發(fā)框架中有的東西及特性,如果要了解Winform框架的多維特點,可以現(xiàn)在最新的共享軟件《倉庫管理系統(tǒng)》,具體可以參考文章《從開發(fā)的軟件《備件倉庫管理系統(tǒng)》總結(jié)的一些經(jīng)驗》進行了解,該共享軟件除了整合眾多優(yōu)秀的功能外,一個特點就是數(shù)據(jù)管理模塊也得到了升華。

            在Winform框架中,其中權(quán)限管理系統(tǒng)、字典管理系統(tǒng),都是可以做成獨立的程序來使用,而且應(yīng)該可以在程序中引用來查詢或者獲取相關(guān)的字典數(shù)據(jù),如找某個鍵值的字典列表作為下拉列表,而且由于實際項目總,有點是SqlServer、有的是Access數(shù)據(jù)庫的,所以支持多數(shù)據(jù)庫是最好的選擇。

            在字典數(shù)據(jù)數(shù)據(jù)管理工程項目中,我們看到有兩個不同的數(shù)據(jù)訪問層,工廠模式通過不同的配置,調(diào)用不同的數(shù)據(jù)訪問層,從而實現(xiàn)SqlServer、Access等數(shù)據(jù)庫的支持,當(dāng)然可以擴展更多的數(shù)據(jù)庫支持,我們先來看看工程項目的視圖如下所示:

          配置文件如下所示


          字體:        | 上一篇 下一篇 | 打印  | 我要投稿 

        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:我的應(yīng)用程序數(shù)據(jù)字典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="深田之星倉庫管理系統(tǒng)"/> 
        16. <!--開發(fā)商名稱--> 
        17. <add key="Manufacturer" value="廣州愛啟迪技術(shù)有限公司"/> 
        18. <!--數(shù)據(jù)字典的數(shù)據(jù)庫類型:access、sqlserver等--> 
        19. <add key="ComponentDbType" value="access"/> 
        20.  </appSettings> 
        21. </configuration>
        22.   我們通過DictionaryDbType來切換不同的數(shù)據(jù)庫,不用修改代碼實現(xiàn)多數(shù)據(jù)庫支持,當(dāng)然,不同的數(shù)據(jù)庫,需要創(chuàng)建不同的數(shù)據(jù)庫文件,不過數(shù)據(jù)庫結(jié)構(gòu)基本上是一致的。

            我們看看該字典管理模塊的最終效果,如下所示:

            字典數(shù)據(jù)模塊做成獨立的程序后,一個可以獨立運行,也可以在宿主程序中通過DLL方式調(diào)用類庫來獲取字典數(shù)據(jù),如下所示:

        23. private void InitDictItem()  
        24. {  
        25. this.txtManufacture.Items.Clear();  
        26. this.txtManufacture.Items.AddRange(DictItemUtil.GetDictByDictType("供貨商"));  
        27. this.txtBigType.Items.Clear();  
        28. this.txtBigType.Items.AddRange(DictItemUtil.GetDictByDictType("備件屬類"));  
        29. this.txtItemType.Items.Clear();  
        30. this.txtItemType.Items.AddRange(DictItemUtil.GetDictByDictType("備件類別"));  
        31. this.txtSource.Items.Clear();  
        32. this.txtSource.Items.AddRange(DictItemUtil.GetDictByDictType("來源"));  
        33. this.txtWareHouse.Items.Clear();  
        34. this.txtWareHouse.Items.AddRange(DictItemUtil.GetAllWareHouse().ToArray());  
        35. this.txtDept.Items.Clear();  
        36. this.txtDept.Items.AddRange(DictItemUtil.GetDictByDictType("部門"));  
        37. }
        38.   字典組件模塊調(diào)用例子Demo程序下載地址也一并提供下載,下載地址如下:

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



          posted on 2011-11-17 16:03 順其自然EVO 閱讀(231) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫

          <2011年11月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 水城县| 云南省| 庆云县| 土默特右旗| 孝昌县| 密云县| 朔州市| 尖扎县| 鹤峰县| 卢氏县| 平罗县| 成安县| 五指山市| 方城县| 铜陵市| 高邮市| 宣武区| 文登市| 得荣县| 柘荣县| 龙南县| 九江县| 西林县| 册亨县| 沧源| 广河县| 黔东| 黄骅市| 彩票| 蓝田县| 开远市| 陇西县| 车险| 东莞市| 宁德市| 永宁县| 万安县| 库车县| 遂川县| 广安市| 绥芬河市|