程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> 進銷存項目中實現數據字典

進銷存項目中實現數據字典

編輯:關於C#
 

創建字典

clip_image002

將字典內容綁定到ComboBox

cboCategory.InitializeValueListFromDictionary("DatabaseScript");

效果如下

clip_image003

在設計Windows 組件ComboBox時,根本沒有考慮到數據字典的存在,沒有InitializeValueListFromDictionary的實現。

隨著系統的擴展,在業務系統中實現了數據字典功能,然而組件ComboBox對數據字典仍然一無所知。也就是,不能讓ComboBox的實現依賴於數據字典功能,這樣不利於擴展和維護。

在不改變代碼的情況下,對一個組件進行擴展,添加新的方法,可以使用擴展方法

public static class ExtensionHelper

{

public static void InitializeValueListFromDictionary(this ComboBox combox, string dictionaryCode)

{

}

}

於是就實現了數據字典的功能。

繼續應用數據字典到員工信息中,實現省份的綁定

cboProverince.InitializeValueListFromDictionary("Province");

clip_image004

SQL腳本如下

IF OBJECT_ID ('dbo.GBDICH') IS NOT NULL

DROP TABLE dbo.GBDICH

GO

CREATE TABLE dbo.GBDICH

(

NAME NVARCHAR (50) NOT NULL,

DESCRIPTION NVARCHAR (200) NULL,

SUSPENDED BIT NULL,

CONSTRAINT PK_GBDICH PRIMARY KEY (NAME)

)

GOIF OBJECT_ID ('dbo.GBDICD') IS NOT NULL

DROP TABLE dbo.GBDICD

GO

CREATE TABLE dbo.GBDICD

(

CODE_NAME NVARCHAR (50) NOT NULL,

NAME NVARCHAR (50) NULL,

DESCRIPTION NVARCHAR (200) NULL,

SUSPENDED BIT NULL,

CONSTRAINT PK_GBDICD PRIMARY KEY (CODE_NAME),

CONSTRAINT FK_GBDICD_GBDICD FOREIGN KEY (NAME) REFERENCES dbo.GBDICH (NAME)

)

GO

 

不變的數據字典 changeless

有一種類型的數據字典,它的值是不會發生改變的。比如消息的命令類型,只有三種,收,發和回復三種類型

public enum MessageFlowType

{

Outgoing = 0,

Incoming = 1,

Reply = 2,

}

再比如報表數據源,規定是應用數據庫,框架數據庫,或是自定義數據庫

public enum ReportDataSource

{

CompanyDatabase = 0,

SystemDatabase = 1,

CustomDatabase = 2,

}

對於這種數據字典,直接以C#代碼的方式編譯到程序集中,並且在設計ComboBox組件時就要考慮綁定問題

public void InitializeValueListFromEnum(Type enumType, bool allowEmpty) { }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved