C 教程之自己動手寫對映第四節 封裝刪除

2022-02-04 18:11:59 字數 3335 閱讀 3205

一、動機

我們在借助於

sqlhelper刪除資料的時候,一般的**如下:

1/*2

*3* 建立人:李林峰4*

5* 時 間:2012-07-266*

7* 描 述:借助於sqlhelper刪除表的資料8*

9*/1011

using

system.data;

12using

csharp.core;

1314

namespace

csharp.remove

15", 1

);24

sqlhelper.executenonquery(conn, commandtype.text, strsqla);

2526

//根據編號刪除表b資料

27string strsqlb = string.format("

delete from b where id =

", 1

);28

sqlhelper.executenonquery(conn, commandtype.text, strsqlb);

2930

//根據編號刪除表c資料

31string strsqlc = string.format("

delete from c where id =

", 1

);32

sqlhelper.executenonquery(conn, commandtype.text, strsqlc);

3334

//根據編號刪除表d資料

35string strsqld = string.format("

delete from d where id =

", 1

);36

sqlhelper.executenonquery(conn, commandtype.text, strsqld);

3738

//根據編號刪除表e、f、g、h.........資料39}

40}41 }

如上所示:我們在進行表資料根據編號刪除的時候,重複不停的寫著:

1

//根據編號刪除表a資料

2string strsqla = string.format("

delete from a where id =

", 1

);3 sqlhelper.executenonquery(conn, commandtype.text, strsqla);

在我們反覆書寫的同時,有沒能停下腳步思考下這些**是否有重複的地方或是可以重用的地方呢?經過思考我們可以看出變化的部分只是sql語句不同:

1 delete from a where id =
我們再進一步思考sql中變化的部分與不變的部分:

1 delete from 變化的表名稱 where 變化的主鍵 = 變化的主鍵編號
到了這裡,我們基本分離出了所有刪除語句中變化的部分和變化的部分。

二、實現

通過上面的動機,我們可以在sqlhelper的基礎上二次封裝如下方法,以簡化我們開發過程中的工作:

1

///2

///封裝後

3///

4public

void

removeinvokebyhelper()

5

簡單應用**如下:

1/*2

*3* 建立人:李林峰4*

5* 時 間:2012-07-266*

7* 描 述:借助於sqlhelper刪除表的資料8*

9*/1011

using

system;

12using

system.collections.generic;

13using

system.data;

14using

system.text;

1516

namespace

csharp.core

17 where =

", tablename, primarykey, keyvalue);

23sqlhelper.executenonquery(conn, commandtype.text, strremovesql);24}

25}26}

2728

29/*30*

31* 建立人:李林峰32*

33* 時 間:2012-07-2634*

35* 描 述:常量類36*

37*/

3839

using

system.configuration;

4041

namespace

csharp.dll

4253}54

5556

5758

/*59*60

* 建立人:李林峰61*

62* 時 間:2012-07-2663*

64* 描 述:刪除員工例項65*

66*/

6768

using

system;

69using

csharp.core;

7071

namespace

csharp.dll

7285}86

}878889

90/*91*

92* 建立人:李林峰93*

94* 時 間:2012-07-2695*

96* 描 述:刪除訊息例項97*

98*/

99100

using

system;

101using

csharp.core;

102103

namespace

csharp.dll

104117

}118 }

專案結構如下:

三、總結

通過上面的例子一步一步對我們日常的重複**進行了封裝,直到我們認為變化的地方是乙個不可分割的點,刪除時我們暫時並沒有用到「對映」的概念,大家可以繼續想一下,是不是我們的「tablename」,「messageid」等可以統計歸類到.xml檔案中,我們的底層去依賴個xml,使程式的結構變的更清晰,後面的章節我們會繼續介紹。

四、版權

第四節 C 函式過載

在真實的軟體開發中,經常要使用到函式過載,尤其在類的設計中,經常遇到。c 的函式過載是指,多個函式可以使用同乙個函式名,但是條件是函式的引數列表必須不同,引數列表內,可以是引數的數目不同,引數的型別不同等,如下所示 include void setvalue int one void setvalu...

C 第四節課

知識點 三種屬性,using改變許可權,繼承時名字的遮蔽,函式過載的遮蔽問題,派生類的建構函式,多繼承類,命名衝突,虛繼承,多繼承的建構函式,在基類中,基類的public,protected private 成員都是可以訪問的,但是類的物件只能訪問public成員 public繼承 基類的publi...

C 教程之自己動手寫對映第一節 動機

前言撒 最近在園子裡看到不少老鳥們寫一些orm相關的文章。做為菜鳥的我有感而發,因為本人也一直在完善自己的om框架做為平時的娛樂。所謂 授人以魚,不如授之以漁 當我看到老鳥們寫的文章時,大部份只寫了部分核心 和使用方法並且開源。站在使用價值的角度來說,確實實用 量少,重用性高,操作簡單啦等等.可是站...