乙個不知道是不是很笨的MS SQL資料庫連線類

2021-09-20 20:54:14 字數 1914 閱讀 9096

斗膽發篇東西在首頁……寫得不好,還請大家多多包涵……

原文**:

dotnetnuke的幼稚模仿版……要是做不完,也是我找苦吃……

老實說,我覺得……這個project已經比整個blogwind要複雜了……

一直都很討厭寫重複的**……特別是與資料庫有關的東西……總是反覆的讀取資料庫連線字串……開啟資料庫連線……宣告新的資料命令……新dataadapter等等……

我暫時還沒法向dotnetnuke一樣去使用factory design pattern……自己自作聰明的寫了下面乙個類conn:

imports system.data.sqlclient

public

class conn

private conn as sqlconnection

public cmd as sqlcommand

public

subsub

public

function close()

if conn.state = connectionstate.open then

conn.close()

endif

endfunction

public

function exe(byval sql as

string)

dim cmd as

new sqlcommand(sql, conn)

cmd.executenonquery()

cmd.dispose()

endfunction

public

function retrieve(byval sql as

string, byval name as

string) as datatable

dim comm as sqldataadapter

comm =

new sqldataadapter(sql, conn)

dim ds as

new datatable

comm.fill(ds)

comm.dispose()

return ds

endfunction

public

function newcmd(byval sql as

string)

cmd =

new sqlcommand(sql, conn)

cmd.commandtype = commandtype.storedprocedure

endfunction

endclass

這個類應該還是會慢慢的擴充套件……我知道有sqlhelper之類的東西……但是,一直沒有心情去學習……不知道寫這麼個類是不是在重複sqlhelper的功能……

有了這個東西……我就在也不用在所有的頁面裡面重複跟資料庫有關的東西了……連imports system.data.sqlclient都不用……

全部一上來就 dim cn as new conn……

如果要執行nonquery的sql命令……便cn.exe(sql)……

要獲得乙個表則dim dt as datatable, 然後dt = cn.retrieve(sql, tablename)

要執行儲存過程的話,則cn.newcmd(sp name),然後,便可以對cn.cmd新增各個parameters啥的……

我不敢說這樣子很爽……但是……比起我一開始在寫blogwind的時候,是舒服很多了……

我不知道有沒有可能通過重寫這個類來實現資料庫通用……而不需要更改其它部分的程式……也許可以吧……至少我並沒有在其他部分程式裡面import sqlclient……使用的東西,也都是database independent的……

什麼時候閒得發慌了……我就去寫access/mysql/oracle等的conn類……然後看看是否可以直接替換……嘿嘿……

我不知道是不是正確的

易蠻聞言翻了翻白眼,道 就你厲害,那你來說說這是怎麼回事,我來聽聽你的高見。敖潛見到自己可以大展拳腳,顯擺一下自己淵博的知識,頓時來了興致,他提高聲音,傲然開口道 小子,今天我就讓你見識一下真正的修真世界,有些事情可不是你這個門外漢可以理解的。這條河確實叫 黃泉 但是它不通向幽冥地府,因為幽冥地府根...

聽說發個部落格就有10個積分,不知道是不是真的

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...

c 反射的使用方法,不知道是不是最全的

就不用看了。首先我們建立乙個類庫,將它生成為helloworld.dll,usingsystem namespacewebtest public classreflecttest inte ce1 set privatestringwriteb set publicreflecttest publi...