溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Winform框架中怎么管理字典數(shù)據(jù)

發(fā)布時(shí)間:2021-07-20 14:22:38 來源:億速云 閱讀:111 作者:Leah 欄目:編程語言

Winform框架中怎么管理字典數(shù)據(jù),針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

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

Winform框架中怎么管理字典數(shù)據(jù)

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

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

Winform框架中怎么管理字典數(shù)據(jù)

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

Winform框架中怎么管理字典數(shù)據(jù)

配置文件如下所示

<?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:我的應(yīng)用程序數(shù)據(jù)字典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="深田之星倉庫管理系統(tǒng)"/> <!--開發(fā)商名稱--> <add key="Manufacturer" value="廣州愛啟迪技術(shù)有限公司"/> <!--數(shù)據(jù)字典的數(shù)據(jù)庫類型:access、sqlserver等--> <add key="ComponentDbType" value="access"/>  </appSettings> </configuration>

我們通過DictionaryDbType來切換不同的數(shù)據(jù)庫,不用修改代碼實(shí)現(xiàn)多數(shù)據(jù)庫支持,當(dāng)然,不同的數(shù)據(jù)庫,需要?jiǎng)?chuàng)建不同的數(shù)據(jù)庫文件,不過數(shù)據(jù)庫結(jié)構(gòu)基本上是一致的。

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

Winform框架中怎么管理字典數(shù)據(jù)

字典數(shù)據(jù)模塊做成獨(dú)立的程序后,一個(gè)可以獨(dú)立運(yùn)行,也可以在宿主程序中通過DLL方式調(diào)用類庫來獲取字典數(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("備件屬類"));  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("部門"));  }

關(guān)于Winform框架中怎么管理字典數(shù)據(jù)問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI