Winform開發框架之動態指定資料表

2021-09-22 13:40:50 字數 2464 閱讀 4333

在winform開發框架的應用中,大多數的時候,我們都是採用固定的表名作為運算元據表的物件,但有時候,有些特殊的需要,需要動態指定表的名稱,如表名稱可能和年份有關係或者和登入使用者的身份有關係等等。本文介紹基於我的winform開發框架,介紹如何動態構造表名,實現向不同表獲取資料的操作實現。

例如:資料庫中有一些客戶資訊的表(customer),按照年份儲存,都是customer2012這樣格式的表,每次呼叫的時候需要告訴customer業務物件實際上去訪問哪個customer的表,比如customer2012或者customer2013,那麼我們應該如何操作才能達到這種效果呢?

首先我們來了解下整個winform開發框架的分層布局如下所示。其中介面層ui直接訪問bll層,不需要通過網路(wcf開發框架通過網路訪問資料),其中公用輔助類庫common層、實體類層可以在各個層中訪問,並把常用的許可權管理、字典管理封裝為元件模組,直接呼叫,底層則使用工廠方式,來支援各種不同的資料庫,其中ui層、bll層、dal層、實體層均使用繼承類方式實現最良好的封裝、最優的**設計。

業務訪問層的設計圖如下所示。

資料訪問層的設計如下所示。

由於基類的封裝良好性,以及利用泛型獲得強型別的操作體驗,減少出錯,更加方便易用,在擴充套件上也更加高效快捷。

綜上所述,為了實現動態表名的操作,我們只需要擴充套件三個類即可實現,第乙個是basebll業務層基類,提供給介面給介面進行呼叫;第二個是ibasedal,提供資料訪問層介面進行呼叫,第三個是在abstractbasedal基類中實現修改資料表的介面即可。下面我們來看具體的**分析。

1)在basebll增加inittablename函式的實現。

public

class basebllwhere t : baseentity, new

()

public basebll(string

dalname)

#endregion

//////

初始化資料庫表名

/// ///

資料庫表名

public

void inittablename(string

tablename)

}

2)在ibasedal中增加介面定義

///

///資料訪問層介面

/// public

inte***ce ibasedalwhere

t : baseentity

3)在abstractbasedal資料訪問基類中實現inittablename介面。

///

///資料訪問層的基類

/// public

abstract

class abstractbasedalwhere t : baseentity, new

()

//////

指定表名以及主鍵,對基類進構造

/// ///

表名 ///

表主鍵 public abstractbasedal(string tablename, string

primarykey)

//省略其他**

..............................

//////

初始化資料庫表名

/// ///

資料庫表名

public

void inittablename(string

tablename)

}

4)介面層呼叫**以資料字典操作為例,我們動態指定表名可以呼叫下面**,如下所示。

private

void btntest_click(object

sender, eventargs e)

以上就是動態表名在我的winform開發框架中的實現擴充套件,雖然這個實現不算複雜,但是可以從中了解winform開發框架的業務物件的呼叫過程,以及看到基類物件擴充套件的方便性和高效性。

由於底層的物件良好封裝,在我們實際開發過程中,大多數情況下,不用編寫額外的資料訪問**,對於介面及整體框架的**,也有**生成工具database2sharp能夠實現快速的框架**以及介面**(包括winform、web介面**)的生成,以此從根本上提高開發的效率,減少出錯的機會,統一整體框架的**風格,實現更加健壯的開發應用。

Winform開發框架之介紹

框架已經正式改名為 yeswin開發框架,最新資料請前往 yeswinform 簡介 yes快速開發平台框架 yesdotnet.com winform開發框架,儘量減少程式設計師在介面中的 量和工作量,model自動生成,介面以及控制項自動生成,簡單的邏輯自動生成。自動生成的介面已經實現簡單邏輯增...

Winform開發框架之動態指定資料表

在winform開發框架的應用中,大多數的時候,我們都是採用固定的表名作為運算元據表的物件,但有時候,有些特殊的需要,需要動態指定表的名稱,如表名稱可能和年份有關係或者和登入使用者的身份有關係等等。本文介紹基於我的winform開發框架,介紹如何動態構造表名,實現向不同表獲取資料的操作實現。例如 資...

Winform開發之離線式WCF開發框架的實現介紹

在上篇隨筆 winform開發框架之框架演化 中介紹了幾種winform開發框架,其中有對於離線式wcf開發框架的介紹,離線式的wcf開發框架 就是結合了傳統winform開發框架的資料訪問方式,又利用了wcf分布式資料獲取的特點,使得資料可以離線使用,在一種業務要求集中化,又要求不影響正常業務操作...