真正理解SqlHelper嗎?

2021-06-19 01:45:11 字數 4009 閱讀 8318

從個人版機房到現在的合作,一直在用sqlhelper。那到底為什麼要用?然後怎麼去用?真的了解嗎?調機房的時候,我發現自己對sqlhelper的理解特別的淺顯,只是大概說一下作用,一些具體的就不明白了。下面我主要總結一下自己學習中的缺失的部分。

sqlhelper 是乙個基於.net framework的資料庫操作元件。元件中包含資料庫操作方法。sqlhelper用於簡化你重複的去寫那些資料庫連線(sqlconnection),sqlcommand,sqldatareader等等。sqlhelper封裝過後通常是只需要給方法傳入一些引數如資料庫連線字串,sql引數等,就可以訪問資料庫了,很方便。

sqlhelper 類用於通過一組靜態方法來封裝資料訪問功能。該類不能被繼承或例項化,因此將其宣告為包含專用建構函式的不可繼承類。在sqlhelper 類中實現的每種方法都提供了一組一致的過載,因此開發人員可以確定傳遞連線、和引數資訊的方式。

option explicit on

option strict on

importssystem.data.sqlclient

importssystem.configuration

''' ''' 資料庫助手類,主要是對資料庫的增刪改查進行操作。(其中的開啟資料庫的連線,用的是單利模式,只能例項化乙個連線,開啟乙個乙個連線)

'''

'''publicnotinheritable class sqlhelper

''' ''' 定義連線和cmd命令(方法一,直接例項化)

'''

'''

dim connsql as sqlconnection =sqlserverconnection.getconn() '』呼叫單例進行例項化

dim cmdsql as new sqlcommand

''' ''' 公有的建構函式,防止外界的對他進行例項化。

'''

public sub new()

connsql = sqlserverconnection.getconn()

end sub

''' ''' 有引數的增刪改

'''

'''

'''

'''

'''

'''

public function upddelalter(byval strtextas string, byval cmdtype as commandtype, byval sqlparams as sqlparameter()) asboolean

cmdsql.parameters.addrange(sqlparams) 』引數傳入

cmdsql.commandtype = cmdtype

cmdsql.connection =connsql 』設定連線

cmdsql.commandtext =strtext 』設定查詢語句

tryreturncbool(cmdsql.executenonquery())

cmdsql.parameters.clear()

catch ex as exception

return false

end try

end function

''' ''' 無引數的增刪改

'''

'''

'''

'''

'''

public function upddelalterno(byval strtextas string, byval cmdtype as commandtype) as boolean

cmdsql.commandtype = cmdtype

cmdsql.connection =connsql 』設定連線

cmdsql.commandtext =strtext 』設定查詢語句

tryreturncbool(cmdsql.executenonquery())

catch ex as exception

return false

end try

end function

''' ''' 有引數的查詢

'''

'''

'''

'''

'''

'''

public function query(byval strtext asstring, byval cmdtype as commandtype, byval sqlparams as sqlparameter()) asdatatable

dim sqladapater as sqldataadapter

dim dtsql as new datatable

dim dssql as new dataset

cmdsql.commandtext = strtext

cmdsql.commandtype = cmdtype

cmdsql.connection = connsql

cmdsql.parameters.addrange(sqlparams) '引數新增

sqladapater = newsqldataadapter(cmdsql) '例項化adapter

trysqladapater.fill(dssql) '用adapter將dataset填充

dtsql =dssql.tables(0) 'datatable為dataset的第乙個表

cmdsql.parameters.clear() '清除引數

catch ex as exception

msgbox("查詢失敗", ctype(vbokonly + msgboxstyle.exclamation, msgboxstyle),"警告")

end try

return dtsql

end function

''' ''' 無引數的查詢

'''

'''

'''

'''

'''

public function queryno(byval strtext asstring, byval cmdtype as commandtype) as datatable

dim sqladapater as sqldataadapter

dim dtsql as new datatable

dim dssql as new dataset

cmdsql.commandtext = strtext

cmdsql.commandtype = cmdtype

cmdsql.connection = connsql

sqladapater = newsqldataadapter(cmdsql) '例項化adapter

trysqladapater.fill(dssql) '用adapter將dataset填充

dtsql =dssql.tables(0) 'datatable為dataset的第乙個表

catch ex as exception

msgbox("查詢失敗", ctype(vbokonly + msgboxstyle.exclamation, msgboxstyle),"警告")

end try

return dtsql

end function

end class

四、注意

1、如果使用sqlhelper方法呼叫資料庫儲存過程,需要獲取儲存過程的返回值,請使用帶sqlparameter引數的方法,object引數的方法無法獲取儲存過程返回值

部落格推薦:

你真正理解 memset 嗎

除非真正理解 memset。慎用 memset void memset void s,char ch,unsigned n 將s所指向的某一塊記憶體中的每個位元組的內容全部設定為ch指定的ascii值,void memset void s,int c,size t n 將已開闢記憶體空間 s 的首 ...

真正理解java wait notify

從字面上理解,notify 方法能夠喚醒乙個正在等待該物件的monitor的執行緒,當有多個執行緒都在等待該物件的monitor的話,則只能喚醒其中乙個執行緒,具體喚醒哪個執行緒則不得而知。nofityall 方法能夠喚醒所有正在等待該物件的monitor的執行緒,這一點與notify 方法是不同的...

真正理解矩陣

孟巖,從很獨特的角度理解矩陣。理解矩陣 一 理解矩陣 二 理解矩陣 三 這裡的運動不同於物理中連續的運動,而是瞬間的從一點到另一點的運動 即躍遷 術語為 變換 因此,矩陣是對線性空間裡變換 即線性變換 的描述。選的基 座標系 不同,同乙個變換就有不同的描述,即有不同的矩陣,這些矩陣是相似的,矩陣a,...