一、動機
我們在借助於
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在我們反覆書寫的同時,有沒能停下腳步思考下這些**是否有重複的地方或是可以重用的地方呢?經過思考我們可以看出變化的部分只是sql語句不同://根據編號刪除表a資料
2string strsqla = string.format("
delete from a where id =
", 1
);3 sqlhelper.executenonquery(conn, commandtype.text, strsqla);
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框架做為平時的娛樂。所謂 授人以魚,不如授之以漁 當我看到老鳥們寫的文章時,大部份只寫了部分核心 和使用方法並且開源。站在使用價值的角度來說,確實實用 量少,重用性高,操作簡單啦等等.可是站...