国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET數(shù)據(jù)庫編程 (2)

2024-07-10 13:02:52
字體:
供稿:網(wǎng)友

  通過ado.net訪問數(shù)據(jù)庫

  不論從語法來看,還是從風(fēng)格和設(shè)計(jì)目標(biāo)來看,ado.net都和ado有顯著的不同。在asp中通過ado訪問數(shù)據(jù)庫,一般要通過以下四個(gè)步驟:

  1、 創(chuàng)建一個(gè)到數(shù)據(jù)庫的鏈路,即ado.connection;

  2、 查詢一個(gè)數(shù)據(jù)集合,即執(zhí)行sql,產(chǎn)生一個(gè)recordset;

  3、 對(duì)數(shù)據(jù)集合進(jìn)行需要的操作;

  4、 關(guān)閉數(shù)據(jù)鏈路。

  在ado.net里,這些步驟有很大的變化。ado.net的最重要概念之一是dataset。dataset是不依賴于數(shù)據(jù)庫的獨(dú)立數(shù)據(jù)集合。所謂獨(dú)立,就是:即使斷開數(shù)據(jù)鏈路,或者關(guān)閉數(shù)據(jù)庫,dataset依然是可用的。如果你在asp里面使用過非連接記錄集合(connectionless recordset),那么dataset就是這種技術(shù)的最徹底的替代品。
有了dataset,那么,ado.net訪問數(shù)據(jù)庫的步驟就相應(yīng)地改變了:

  1、創(chuàng)建一個(gè)數(shù)據(jù)庫鏈路;

  2、請(qǐng)求一個(gè)記錄集合;

  3、把記錄集合暫存到dataset;

  4、如果需要,返回第2步;(dataset可以容納多個(gè)數(shù)據(jù)集合)

  5、關(guān)閉數(shù)據(jù)庫鏈路;

  6、在dataset上作所需要的操作。

  dataset在內(nèi)部是用xml來描述數(shù)據(jù)的。由于xml是一種平臺(tái)無關(guān)、語言無關(guān)的數(shù)據(jù)描述語言,而且可以描述復(fù)雜數(shù)據(jù)關(guān)系的數(shù)據(jù),比如父子關(guān)系的數(shù)據(jù),所以dataset實(shí)際上可以容納具有復(fù)雜關(guān)系的數(shù)據(jù),而且不再依賴于數(shù)據(jù)庫鏈路。

  ado.net有許多對(duì)象,我們先看看最基本的也最常用的幾個(gè)。首先看看adoconnection。和ado的adodb.connection對(duì)象相對(duì)應(yīng),adoconnection維護(hù)一個(gè)到數(shù)據(jù)庫的鏈路。為了使用ado.net對(duì)象,我們需要引入兩個(gè)namespace:system.data和system.data.ado,使用asp.net的import指令就可以了:

  <%@ import namespace="system.data" %> 

  <%@ import namespace="system.data.ado" %> 

和ado的connection對(duì)象類似,adoconnection對(duì)象也有open和close兩個(gè)方法。下面的這個(gè)例子展示了如何連接到本地的ms sql server上的pubs數(shù)據(jù)庫。

<%@ import namespace="system.data" %> 
<%@ import namespace="system.data.ado" %> 
<%
'設(shè)置連接串...
dim strconnstring as string
strconnstring = "provider=sqloledb; data source=(local); " & _
"initial catalog=pubs; user id=sa"

'創(chuàng)建對(duì)象adoconnection
dim objconn as adoconnection
objconn = new adoconnection

'設(shè)置adoconnection對(duì)象的連接串
objconn.connectionstring = strconnstring

objconn.open() '打開數(shù)據(jù)鏈路

'數(shù)據(jù)庫操作代碼省略

objconn.close() '關(guān)閉數(shù)據(jù)鏈路
objconn = nothing '清除對(duì)象
%> 


上面的代碼和ado沒有什么太大的差別。應(yīng)該提到的是,ado.net提供了兩種數(shù)據(jù)庫連接方式:ado方式和sql方式。這里我們是通過ado方式連接到數(shù)據(jù)庫。關(guān)于建立數(shù)據(jù)庫連接的詳細(xì)信息,我們?cè)诤竺娴钠袑?huì)講到。

  adodatasetcommand

  另一個(gè)不得不提到的ado.net對(duì)象是adodatasetcommand,這個(gè)對(duì)象專門負(fù)責(zé)創(chuàng)建我們前面提到的dataset對(duì)象。另一個(gè)重要的ado.net對(duì)象是dataview,它是dataset的一個(gè)視圖。還記得dataset可以容納各種各種關(guān)系的復(fù)雜數(shù)據(jù)嗎?通過dataview,我們可以把dataset的數(shù)據(jù)限制到某個(gè)特定的范圍。

  下面的代碼展示了如何利用adodatasetcommand為dataset填充數(shù)據(jù):

  

'創(chuàng)建sql字符串
dim strsql as string = "select * from authors"

'創(chuàng)建對(duì)象adodatasetcommand 和dataset
dim objdscommand as adodatasetcommand
dim objdataset as dataset = new dataset
objdscommand = new adodatasetcommand(strsql, objconn)

'填充數(shù)據(jù)到dataset
'并將數(shù)據(jù)集合命名為 "author information"
objdscommand.filldataset(objdataset, "author information
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宜阳县| 晋城| 和平县| 巴东县| 平塘县| 昭通市| 凌海市| 子长县| 葵青区| 鹤峰县| 汝城县| 库车县| 正阳县| 新泰市| 新野县| 齐齐哈尔市| 邯郸县| 澄迈县| 台东县| 南充市| 丹东市| 东兴市| 永胜县| 屏东市| 任丘市| 青田县| 克山县| 丹阳市| 宁化县| 浦城县| 南澳县| 淳安县| 包头市| 西藏| 双柏县| 潞城市| 咸丰县| 荆州市| 清涧县| 弋阳县| 高青县|