ADO.NET是ADO的后继版本,主要目的是在.NET Framework中更容易地创建分布式、
数据共享的应用程序,它提供了一个数据访问接口,以便和OLE DB数据源进行通信,如
SQL SERVER.应用程序可以使用ADO.NET连接这些数据源,并检索、处理和更新数据。
可以说ADO.NET是在ADO的基础上,又进一步的扩展,提供了更多新的工具,可以获取
一个真正断开连接的数据体系结构,可以将不同数据源中的数据组合起来,并优化了和
数据库交互的功能。
下面是ADO和ADO.NET之间一些数据访问功能的区别
功能 |
ADO |
ADO.NET |
内存表示方式 |
适用Recordset |
使用DataSet对象 |
表之间关系 |
适用JOIN查询来组装数据 |
支持DataRelation对象,将表关联起来 |
数据访问 |
适用.MoveNext方法顺序遍历 |
通过DataTable的Rows集合索引访问 |
断开访问 |
默认情况下,通过调用OLEDB提供程序来和数据通信 |
可以通过OLEDB或者SQL SERVER数据提供数据通信 |
为了进一步弄清楚ADO和ADO.NET的区别和相似处,下面来看一些代码。首先是ADO代
码,我们在第一次做机房收费系统的时候,用到过这些知识。该代码获取CESHI数据库中
User表中的Recordset,并在其中遍历,输出每一个用户名:
Private Sub GetUser()
Dim strSQL As String
Dim strConn As String
Dim objRS As ADODB.Recordset
Dim strResult As String
‘建立连接
strConn = "provider=SQLOLEDB;Initial Catalog=CESHI;" _
& "data source=(local);user id=sa;password=123456"
strSQL = "select * from btuser"
‘创建一个Recordset实例
objRS = New ADODB.Recordset
With objRS
.cursorlocation = adUserClient
.CursorType = adOpenStatic
.open(strSQL, strConn)
Do Until .EOF
strResult = .Fields("firstname").value _
& "" & .Fields("Lastname").value
.movenext()
Loop
End With
objRS = Nothing
End Sub
在ADO中通过Recordset对象来进行操作,下面来看看在ADO.NET中是如何操作的
Dim strSQL As String
Dim strConn As String
Dim objDA As SqlClient.SqlDataAdapter
Dim objDS As New Data.DataSet
Dim inCounter As Integer
Dim strResult As String
Dim objcommand As New SqlCommand
strConn = "initial catalog=CESHI;data source=(local);" _
& "user id=sa;password=123456"
strSQL = "select * from tbuser"
objDA = New SqlDataAdapter(strSQL, strConn)
objDA.Fill(objDS)
With objDS.Tables(0)
For inCounter = 0 To .Rows.Count - 1
strResult = .Rows(inCounter).Item("username").ToString _
& "" & .Rows(inCounter).Item("password").ToString
MessageBox.Show(strResult)
Next
End With
通过对比我们发现,其实连接字符串所使用的方法相同,不同的是把他们直接传送的
对象不同,在ADO.NET中,只不过换了下对象,比以前的操作更容易操作而已。
ADO和ADO.NET的区别,码迷,mamicode.com
原文地址:http://blog.csdn.net/luckyzhoustar/article/details/24770423