原創DataHelp虛擬類,資料持久工廠介面

2022-01-28 20:59:16 字數 3947 閱讀 7123

這個類想了很久還是覺得用vb來寫好些,一直覺得vb和資料庫是親家,這是以前的說法,說呀資料持久就用vb來寫了.

這個工程的目的是這樣的,通過這個橋的模式把最長用的三種資料庫鏈結起來,然後在程式中讓邏輯操作和具體資料庫操作完全解耦合,這樣變實現了業務邏輯資料操作和實際資料型別的無關性,要更改資料庫就需要配置config檔案來確定具體使用的資料庫操作型別.

imports system.data.common

imports system.data

imports system.data.sqlclient

imports cwf.datahelper

'''

''' 常用資料操作抽象類

''' 定義乙個大的家族,並規定需要執行的過程

'''

'''

public mustinherit class abstractdb : inherits marshalbyrefobject

'''

''' 自定義鏈結字串

'''

'''

'''

'''

public mustoverride property connectionstring as string

#region "執行語句"

'''

''' 關閉資料庫連線

'''

'''

public mustoverride sub close()

'''

''' 不帶引數執行cmdtxt

'''

''' cmdtxt語句

'''

public mustoverride function execute(byval cmdtxt as string) as integer

'''

''' 帶引數執行cmdtxt

'''

''' cmdtxt語句

''' 引數

'''

public mustoverride function execute(byval cmdtxt as string, byval parameters as dbparameter()) as integer

#end region

#region "查詢資料"

'''

''' 不帶引數返回datatable

'''

''' cmdtxt引數

''' datatable

'''

public mustoverride function query(byval cmdtxt as string) as datatable

'''

''' 帶引數返回datatable

'''

''' cmdtxt

''' 引數

''' datatable

'''

public mustoverride function query(byval cmdtxt as string, byval parameters as dbparameter()) as datatable

'''

''' 不帶引數返回dataset

'''

''' cmdtxt引數

''' dataset

'''

public mustoverride function querydataset(byval cmdtxt as string) as dataset

'''

''' 帶引數返回dataset

'''

''' cmdtxt

''' 引數

''' dataset

'''

public mustoverride function querydataset(byval cmdtxt as string, byval parameters as object()) as dataset

#end region

#region "執行儲存過程"

'''

''' 不帶引數無返回值執行儲存過程

'''

''' 儲存過程

'''

public mustoverride sub excuteproc(byval procname as string)

'''

''' 帶引數無返回值執行儲存過程

'''

''' 儲存過程

''' 引數

'''

public mustoverride sub excuteproc(byval procname as string, byval parameters as dbparameter())

'''

''' 不帶引數返回datatable

'''

''' 儲存過程

''' datatable

'''

public mustoverride function queryproc(byval procname as string) as datatable

'''

''' 不帶引數返回dataset

'''

''' 儲存過程

''' dataset

'''

public mustoverride function queryprocdataset(byval procname as string) as dataset

'''

''' 帶引數返回datatable

'''

''' 儲存過程

''' 引數

''' datatable

'''

public mustoverride function queryproc(byval procname as string, byval parameters as dbparameter()) as datatable

'''

''' 帶引數返回dataset

'''

''' 儲存過程

''' 引數

''' dataset

'''

public mustoverride function queryprocdataset(byval procname as string, byval parameters as dbparameter()) as dataset

#end region

#region "簡單程式執行過程"

'''

''' 啟用事務批量執行不帶引數cmdtext:返回影響行數

'''

''' 執行陣列

''' 執行型別

''' integer

'''

public mustoverride function executenonquery(byval cmdtext as string(), byval cmdtype as commandtype) as integer

'''

''' 執行返回第一行第一列的cmdtxt

'''

''' 執行cmdtxt語句

''' object 可以轉換

'''

public mustoverride function executescalar(byval cmdtxt as string) as object

'''

''' 執行返回第一行第一列的cmdtxt

'''

''' 執行cmdtxt語句

''' 引數

''' object

'''

public mustoverride function executescalar(byval cmdtext as string, byval parameters as dbparameter()) as object

#end region

end class

原創 C 類的繼承

在c 語言中,乙個派生類可以從乙個基類派生,也可以從多個基類派生。從乙個基類派生的繼承稱為單繼承 從多個基類派生的繼承稱為多繼承。例 單繼承的定義 class b public 多繼承的定義 class c public a,private b 注 如果在基類前不寫訪問控制符,則預設為私有的 公有繼...

原創 類的交叉使用。

交叉引用物件 a.h a.cpp b.hb.cpp a中有b的指標,b中有a的指標 a.h中有b的指標,在a.h中加入b.h a中即以在任意地方使用a或a中的函式 b.h若在加入a.h編譯器將會報錯。辦法。在b.h中使用a的前置定義如 class a 在b中將可以使用a的指標,但是不能使用a的函式,...

原創 python 實體類

之前寫過一篇 python 封裝 實現 c 實體類 過程比較複雜,一堆一堆的的 今天呢,再補發乙個實測可用哦 1 coding utf 8 2 3 version 1.0 4 author zhangzhipeng 5 date 2015 07 13 6 7 from collections imp...