從個人版機房到現在的合作,一直在用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,...