關于ado.net的一點補充
作者: 孫雯
這幾天比較無聊,猛得想起來還有東西沒有寫完,所以趁著星期六,就又寫了一篇.它的例子是俺和一個我們年級的mm的,嘿嘿,可別笑我,現實中沒有時間泡mm,在這里可要過把隱,哈哈!(臺下,原來sunwen是這樣一個人,唉......)
我的先前的教程里有一篇關于ado+的,就是訪問數據庫的那一篇,出了之后感覺非常地不好,感覺對不起大家了,寫的的確非常地難,例子也選得不好,所以,今天我帶來了一個簡單的從數據庫中讀出數據的東東。
這個數據庫的結構是這樣的:
name age sex other school
茜茜 19 女 美女,愛好廣泛 華中師范大學
孫雯 19 男 不帥,非常喜歡計算機和足球 華中師范大學
好了,讓我們開始吧!下面是源程序(以asp.net來作,飛刀原來有一篇,但用的是bind,這篇不是):
<% @ page language="c#" %>
<% @ import namespace="system.data" %>
<% @ import namespace="system.data.ado" %>
<%
string connectionstring = "driver={microsoft access driver (*.mdb)}; dbq=c:/test/test.mdb;";
adoconnection myconn = new adoconnection(connectionstring);
string cmd="select * from tab";
adocommand mycmd=new adocommand(cmd,myconn);
mycmd.activeconnection.open();
adodatareader adr=null;
mycmd.execute(out adr);
response.write("<table border=2><tr><td align=center>姓名</td><td align=center>年齡</td><td align=center>性別</td><td align=center>備注</td><td align=center>學校</td></tr>");
while(adr.read())
{%>
<tr>
<td align="center">
<%=adr["name"].tostring()%>
</td>
<td align="center">
<%=adr["age"].tostring()%>
</td>
<td align="center">
<%=adr["sex"].tostring()%>
</td>
<td align="center">
<%=adr["other"].tostring()%>
</td>
<td align="center">
<%=adr["school"].tostring()%>
</td>
</tr>
<%}%>
</table>
其實,用dataset的功能是最強大的,但是讓我們這些初學者一下接觸它,未免太殘忍了,因為它比原來的recordset要復雜地多,我看了一下它的api參考,頭都要昏了(可能是我比較笨)。下面我們來分析一下代碼。我想從response.write()后面就不要說了吧,那個很好理解。我的這個主要分三步:
1.建立數據庫連接,這是每個東東都必須的.
adoconnection myconn = new adoconnection(connectionstring);
2.建立一個ado命令對象,并打開它,是這樣的:
adocommand mycmd=new adocommand(cmd,myconn);
mycmd.activeconnection.open();
3.建立一個adodatareader對象,它的作用就是從數據庫中讀出數據,在java中用的很多,用了它,就不用rs.movenext這樣的方法了,因為它是自動換行的.它每次只讀一行,這是非常地好的,不用像記錄集那樣的東西,一次讀很多,浪費服務器資源.
4.把命令執行的結果讓adoreader來接收:
mycmd.execute(out adr);
然后,adr就成了一個類似指針的東東,自動執行movenext方法.
這是我的一點貢獻,希望能對大家工作學習帶來幫助!
(飛刀注:孫雯這一篇文章使我們在傳統的web編程思維上理解了asp.net,但是我個人并不贊同使用<table>和reader來顯示數據,因為asp.net是一種基于軟件編程思想的web技術,如果我們還是用老的思想去思考程序,那么asp.net的優點將無法展現,使用web控件是asp.net區別于其它技術(特別是jsp)的關鍵。)
本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。