在ASP.net頁(yè)面中最常用的是SQL中的select語(yǔ)句:
select szd_first,szd_last from site_data where id='2'
在asp.net頁(yè)面執(zhí)行一個(gè)select語(yǔ)句需要以下4步完成: 1、創(chuàng)建和打開數(shù)據(jù)庫(kù) 2、創(chuàng)建沂河代表sql select語(yǔ)句的數(shù)據(jù)庫(kù)命令 3、用executereader()方法執(zhí)行這個(gè)命令,并且返回一個(gè)datareader. 4、遍歷datareader,顯示查詢的結(jié)果。
在使用ado.net查詢中,查詢的結(jié)果在一個(gè)datareader中返回,更準(zhǔn)確的說(shuō),查詢的結(jié)果由一個(gè)sqldatareader或oledbdatareader表示,datareader代表一個(gè)只向前的數(shù)據(jù)庫(kù)記錄流,這意味著datareader每次只代表一個(gè)記錄,要想獲取流中的下一個(gè)記錄,必須調(diào)用read()方法,要想顯示所有的記錄,必須反復(fù)調(diào)用read()的方法,直到流的尾部,不能回頭。例如asp里面的游標(biāo)只向前移動(dòng)。
下面的程序顯示了sql server讀取數(shù)據(jù)庫(kù)的記錄:
<%@ import namespace="system.data.sqlclient"%> <% dim sqlconn as sqlconnection dim sqlcmd as sqlcommand dim sqlreader as sqldatareader sqlconn=new sqlconnection("server=localhost;uid=sa;pwd=sd;database=data") sqlconn.open() sqlcmd=new sqlcommand("select szd_first from site_data",sqlconn) sqlreader=sqlcmd.executereader() while sqlconn.read() response.write("<li>") response.write(sqlreader("szd_first")) end while sqlreader.close sqlconn.close %>
分析:先導(dǎo)入sql server的ado.net類需要的名稱空間,然后創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)conn,這和asp相似,接著用一個(gè)sql select語(yǔ)句的sql字符串初始化sqlcmd對(duì)象,這個(gè)語(yǔ)句從名為site_data的表中讀取所有的記錄。然后調(diào)用sqlcommand類的executereader()方法執(zhí)行這個(gè)命令,返回執(zhí)行結(jié)果的sqlreader,然后遍歷所有記錄。
下面演示一個(gè)從access數(shù)據(jù)庫(kù)里面讀出數(shù)據(jù)的源碼:
<%@ Page Language="VB" %> <%@ import namespace="system.data.oledb"%>
<script runat="server"> sub page_load() dim conn as oledbconnection dim accmd as oledbcommand dim acreader as oledbdatareader conn= new oledbconnection("provider=microsoft.jet.oledb.4.0;data source=d:\web\web\net\data\db.mdb") conn.open() accmd=new oledbcommand("select szd_lastname from site_n",conn) acreader=accmd.executereader() while acreader.read() response.write("<LI>" & acreader("szd_lastname")) end while acreader.close conn.close end sub
</script>
有時(shí)候,我們要查詢符合條件的一條記錄,如果按照上面的executereader,效率顯然很差,這里介紹另外一種方法executescalar,在幾張集聚功能的count,max,min等,這個(gè)例子:
sub page_load() dim conn as oledbconnection dim accmd as oledbcommand conn= new oledbconnection("provider=microsoft.jet.oledb.4.0;data source=d:\web\web\net\data\db.mdb") conn.open() accmd=new oledbcommand("select count(*) from site_n ",conn) actxt.text=accmd.executescalar() conn.close end sub
出處:藍(lán)色理想
責(zé)任編輯:moby
上一頁(yè) 在asp.net(vb)中使用ADO.NET 下一頁(yè)
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|