什么是ADO.NET?
ADO.NET的名称起源于ADO(ActiveX Data Objects),是一个COM组件库,用于在以往的Microsoft技术中访问数据。之所以使用ADO.NET名称,是因为Microsoft希望表明,这是在NET编程环境中优先使用的数据访问接口。
ADO.NET的两个核心组件:数据提供程序(Connection、Command、DataReader、DataAdapter)和DataSet。
其中:DataReader是在连接模式对数据进行操作;DataSet是在非连接模式对数据进行操作。
- 连接模式:DataReader通过CommandExecuteReader方法,对数据库进行只读操作。
- DataReader也是ADO.NET最核心的成员之一,是实现基于连接的数据读取的核心组件;只允许以只读、顺向的方式查看其中所存储的数据,提供一个非常有效率的数据查看模式,同时DataReader对象还是一种非常节省资源的数据对象。
- Command对象可以使用数据命令直接与数据源进行通信。Command可以执行SQL语句和存储过程,通过它可以实现对数据增删改查操作。
Command常用属性:Connection、CommandText、CommandType、Parameters
连接模式的代码示例:
<span style="font-size:18px;">从配置文件中获取链接字符串
Dim connStr As String=ConfigurationManager.ConnectionString("MyConnectionString").ConnectionString
建立连接
Dim conn As SqlConnection=New SqlConnection(connStr)
创建命令对象
Dim cmd As SqlCommand=New SqlCommand()
cmd.Connection=conn
cmd.CommandText="Select * from UserInfo"
Dim reader As SqlDataReader
conn.Open() '连接模式,需先打开数据库
reader=cmd.ExecuteReader() 'reader通过Command对象的ExecuteReader方法从数据源中检索数据来创建
If reader.Read() then
'需要的信息
end if
reader.close()
conn.close() '执行完读取操作,关闭数据库
</span>
- 非连接模式:DataAdapter把数据库中的信息,填充到数据集DataSet中,然后可以断开数据库。可以在离线状态下进行查询操作。
两个作用:一、数据适配器DataAdapter填充DataSet;
二、连接上数据库,更新数据源。
常用属性和方法:SelectCommand、InsertCommand、UpdateCommand、DeleteCommand、Fill()、 Update()。
2. DataSet是ADO.NET最核心的成员之一,是实现基于非连接的数据查询的核心组件;DataSet对象用于缓存数据库中的数据,具有类似数据库的结构,可以将DataSet看成是一个数据容器,一个在内存中的临时数据库。
DataSet是ADO.NET的断开式结构的核心组件。
非连接模式的代码示例:
<span style="font-size:18px;">从配置文件中获取链接字符串
Dim connStr As String=ConfigurationManager.ConnectionString("MyConnectionString").ConnectionString
Dim connStr As String=ConfigurationManager.ConnectionString("MyConnectionString").ConnectionString
建立连接
Dim conn As SqlConnection=New SqlConnection(connStr)
打开数据库
conn.Open()
sql语句
sql="Select * from UserInfo"
创建数据适配器DataAdapter
SqlDataAdaper adapter=New SqlDataAdaper (sql,conn) '隐藏起sql,conn,从而,做到DataSet和数据库之间的断线
创建数据集DataSet
Dim ds As DataSet=New DataSet() '为什么没有了sql
使用适配器DataAdapter填充数据集DataSet
adapter.Fill(ds,"User")
conn.Close '此时,已经把数据库中的信息,填充到数据集,可以断开数据库,进行查询操作可以 在离线状态下进行</span>
总结:连接数据库分为连接模式和非链接模式。连接模式下,使用DataReader和Command,进行只读操作,比DataSet快。非连接模式下,DataSet和DataAdapter,可以进行增删改查操作。