欢迎光临
我们一直在努力

建站超值云服务器,限时71元/月

通过ado.net访问数据库

作者:不详  
——————————————————————————–

ado.net访问数据库的步骤
不论从语法来看,还是从风格和设计目标来看,ado.net都和ado有显著的不同。在asp中通过ado访问数据库,一般要通过以下四个步骤:
1、 创建一个到数据库的链路,即ado.connection;
2、 查询一个数据集合,即执行sql,产生一个recordset;
3、 对数据集合进行需要的操作;
4、 关闭数据链路。
在ado.net里,这些步骤有很大的变化。ado.net的最重要概念之一是dataset。dataset是不依赖于数据库的独立数据集合。所谓独立,就是:即使断开数据链路,或者关闭数据库,dataset依然是可用的。如果你在asp里面使用过非连接记录集合(connectionless recordset),那么dataset就是这种技术的最彻底的替代品。
有了dataset,那么,ado.net访问数据库的步骤就相应地改变了:
1、 创建一个数据库链路;
2、 请求一个记录集合;
3、 把记录集合暂存到dataset;
4、 如果需要,返回第2步;(dataset可以容纳多个数据集合)
5、 关闭数据库链路;
6、 在dataset上作所需要的操作。
dataset在内部是用xml来描述数据的。由于xml是一种平台无关、语言无关的数据描述语言,而且可以描述复杂数据关系的数据,比如父子关系的数据,所以dataset实际上可以容纳具有复杂关系的数据,而且不再依赖于数据库链路。
ado.net对象模型概览
adoconnection
ado.net有许多对象。我们先看看最基本的也最常用的几个。首先看看adoconnection。和ado的adodb.connection对象相对应,adoconnection维护一个到数据库的链路。为了使用ado.net对象,我们需要引入两个namespace:system.data和system.data.ado,使用asp.net的import指令就可以了:
<%@ import namespace="system.data" %>
<%@ import namespace="system.data.ado" %>
和ado的connection对象类似,adoconnection对象也有open和close两个方法。下面的这个例子展示了如何连接到本地的ms sql server上的pubs数据库。
<%@ import namespace="system.data" %>
<%@ import namespace="system.data.ado" %>
<%
 设置连接串…
 dim strconnstring as string
 strconnstring = "provider=sqloledb; data source=(local); " & _
         "initial catalog=pubs; user id=sa"
 创建对象adoconnection
 dim objconn as adoconnection
 objconn = new adoconnection
 设置adoconnection对象的连接串
 objconn.connectionstring = strconnstring
 objconn.open() 打开数据链路
 数据库操作代码省略
 objconn.close()  关闭数据链路
 objconn = nothing 清除对象
%>
上面的代码和ado没有什么太大的差别。应该提到的是,ado.net提供了两种数据库连接方式:ado方式和sql方式。这里我们是通过ado方式连接到数据库。关于建立数据库连接的详细信息,我们在后面的篇幅中将会讲到。
adodatasetcommand
另一个不得不提到的ado.net对象是adodatasetcommand。这个对象专门负责创建我们前面提到的dataset对象。另一个重要的ado.net对象是dataview,它是dataset的一个视图。还记得dataset可以容纳各种各种关系的复杂数据吗?通过dataview,我们可以把dataset的数据限制到某个特定的范围。
下面的代码展示了如何利用adodatasetcommand为dataset填充数据:
 创建sql字符串
 dim strsql as string = "select * from authors"
 创建对象adodatasetcommand 和dataset
 dim objdscommand as adodatasetcommand
 dim objdataset as dataset = new dataset
 objdscommand = new adodatasetcommand(strsql, objconn)
 填充数据到dataset
 并将数据集合命名为 "author information"
 objdscommand.filldataset(objdataset, "author information")
显示dataset
前面我们已经把数据准备好。下面我们来看看如何显示dataset中的数据。在asp.net中,显示dataset的常用控件是datagrid,它是asp.net中的一个html控件,可以很好地表现为一个表格,表格的外观可以任意控制,甚至可以分页显示。这里我们只需要简单地使用它:
<asp:datagrid id="datagridname" runat="server"/>
剩下的任务就是把dataset绑定到这个datagrid。绑定是asp.net的重要概念,我们将另文讲解。一般来说,你需要把一个dataview绑定到datagrid,而不是直接绑定dataset。好在dataset有一个缺省的dataview,下面我们就把它和datagrid绑定:
  myfirstdatagrid.datasource = _
     objdataset.tables("author information").defaultview
  myfirstdatagrid.databind()
完整的代码(122301.aspx)
<%@ import namespace="system.data" %>
<%@ import namespace="system.data.ado" %>
<%
 设置连接串…
 dim strconnstring as string
 strconnstring = "provider=sqloledb; data source=(local); " & _
         "initial catalog=pubs; user id=sa"
 创建对象adoconnection
 dim objconn as adoconnection
 objconn = new adoconnection
 设置adoconnection对象的连接串
 objconn.connectionstring = strconnstring
 objconn.open() 打开数据链路
 创建sql字符串
 dim strsql as string = "select * from authors"
 创建对象adodatasetcommand 和dataset
 dim objdscommand as adodatasetcommand
 dim objdataset as dataset = new dataset
 objdscommand = new adodatasetcommand(strsql, objconn)
 填充数据到dataset
 并将数据集合命名为 "author information"
 objdscommand.filldataset(objdataset, "author information")
 objconn.close()  关闭数据链路
 objconn = nothing 清除对象
 authors.datasource = _
     objdataset.tables("author information").defaultview
 authors.databind()
%>
<html>
<body>
<asp:datagrid id="authors" runat="server"/>
</body>
</html>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 »
分享到: 更多 (0)

相关推荐

  • 暂无文章