在ASP.net页面中最常用的是SQL中的select语句:
select szd_first,szd_last from site_data where id='2'
在asp.net页面执行一个select语句需要以下4步完成: 1、创建和打开数据库 2、创建沂河代表sql select语句的数据库命令 3、用executereader()方法执行这个命令,并且返回一个datareader. 4、遍历datareader,显示查询的结果。
在使用ado.net查询中,查询的结果在一个datareader中返回,更准确的说,查询的结果由一个sqldatareader或oledbdatareader表示,datareader代表一个只向前的数据库记录流,这意味着datareader每次只代表一个记录,要想获取流中的下一个记录,必须调用read()方法,要想显示所有的记录,必须反复调用read()的方法,直到流的尾部,不能回头。例如asp里面的游标只向前移动。
下面的程序显示了sql server读取数据库的记录:
<%@ 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 %>
分析:先导入sql server的ado.net类需要的名称空间,然后创建一个数据库conn,这和asp相似,接着用一个sql select语句的sql字符串初始化sqlcmd对象,这个语句从名为site_data的表中读取所有的记录。然后调用sqlcommand类的executereader()方法执行这个命令,返回执行结果的sqlreader,然后遍历所有记录。
下面演示一个从access数据库里面读出数据的源码:
<%@ 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>
有时候,我们要查询符合条件的一条记录,如果按照上面的executereader,效率显然很差,这里介绍另外一种方法executescalar,在几张集聚功能的count,max,min等,这个例子:
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
出处:蓝色理想
责任编辑:moby
上一页 在asp.net(vb)中使用ADO.NET 下一页
◎进入论坛网络编程版块参加讨论
|