第九讲 ADO.NET 数据访问技术
- ADO.NET 简介
- ADO.NET 结构
- ADO.NET 组件
l Connection 对象
l Command 对象
l DataReader 对象
l DataSet 对象
以 ActiveX 数据对象 (ADO) 为基础
以 XML (扩展标记语言)为格式传送和接收数据
System.Data 命名空间
对于 Insert,Update,Delete 等单向操作
l 用于 SQL Server 的 .NET Framework 数据提供程序
System.Data.SqlClient 命名空间
l 用于 ODBC 的 .NET Framework 数据提供程序的命名空间
l System.Data.Odbc 命名空间
l 用于 Oracle 的 .NET Framework 数据提供程序的命名空间
l System.Data.OracleClient 命名空间
l 使用的名称空间小结
l SQL Server Imports System.Data.SqlClient
l OLE DB Imports System.Data.OleDb
l Oracle Imports System.Data.OracleClient
l ODBC Imports System.Data.Odbc
.NET Framework 数据提供程序 | Connection 类 |
SQL 数据提供程序 | SqlConnection |
OLE DB 数据提供程序 | OleDbConnection |
Oracle 数据提供程序 | OracleConnection |
ODBC 数据提供程序 | OdbcConnection |
在 ADO.NET 中,必须显式关闭连接,才能释放实际的数据库连接
Connection 属性: ConnectionString ; Database
Connection 方法: Close() ; Open()
Dim objSqlConnection As New SqlConnection ("server = SQLDB;uid = sa; pwd = password; database = pubs")
objSqlConnection.Open()
objSqlConnection à 创建的连接对象名称
SQLDB à 存储 “pubs” 数据库的服务器名称,也可以写成 IP 地址,如 123.101.220.1
本地服务器可以有以下几种写法:
1 、( local )
2 、 127.0.0.1
3 、本地机子名称
uid, pwd à 用户标识和密码
l Connection 对象的作用
l Connection 对象的两种使用方法
l 拖拉控件
l 写代码
l 四种典型的连接方式的应用名称空间和连接字符串的写法
l SqlConnection
l OleDbConnection
l OracleConnection
l OdbcConnection
Command 对象
Command 对象指定要对数据库执行的操作
.NET Framework 数据提供程序 | Command 类 |
SQL 数据提供程序 | SqlCommand |
OLE DB 数据提供程序 | OleDbCommand |
Oracle 数据提供程序 | OracleCommand |
ODBC 数据提供程序 | OdbcCommand |
与数据库建立连接之后,可以使用 Command 对象执行命令并从数据源返回结果
Command 属性: CommandText 欲执行的内容,可以是 SQL 语句或者存储过程名称
CommandType :命令类型
Connection :
Command 方法: ExecuteNonQuery() 返回受影响的行数
ExecuteReader() 返回 DataReader 类型值
ExecuteScalar() 返回第一行第一列
l 用 SQL 语句的 Command 设置
Dim objComm As New SqlCommand()
objComm.CommandText="SQL 语句 "
objComm.CommandType=CommandType.Text
objComm. Connection=objConnection
l 用存储过程的 Command 设置
Dim objComm As New SqlCommand()
objComm.CommandText=“sp_DeleteName"
objComm.CommandType=CommandType. StoredProcedure
objComm. Connection=objConnection
Sp_DeleteName 是在 SQL Server 服务器上创建的存储过程
使用代码编辑器
Dim objSqlCommand As New SqlCommand(strSQL);
objSqlConnection à 创建的 Command 对象名称
strSQL à 任何有效的 SQL 语句
l Command 的作用
l Command 的使用前提
l Connection 打开
l Command 的使用方法
l 命令文本方式
l 存储过程方式
常用方法 | 描述 |
ExecuteNonQuery | 针对 Connection 属性中定义的连接,为不返回任何行的查询( UPDATE,DELETE,INSERT )执行定义在 CommandText 属性中的命令语句。返回一个 Integer 型数据,指明受查询影响的行的查询。 |
ExecuteReader | 针对 Connection 属性中定义的连接,执行定义在 CommandText 属性中的命令语句。 |
ExecuteScalar | 针对 Connection 属性中定义的连接,执行定义在 CommandText 属性中的命令语句。只返回结果行集的第一行,丢弃其余任何返回的行。 |
DataReader 对象
功能:提供一种只读的、向前的数据访问方法。
使用 DataReader 对象的常用步骤:
1 、创建数据库连接:
dim connectstr as string
connectstr="server=localhost;uid=sa;pwd=;database=pubs"
Dim objConnection as new sqlconnection(connectstr)
2 、打开连接:
objConnection.Open()
3 、使用 Reader 对象执行 SQL 语句:
Dim objCommand As New SqlCommand("Select * from Authors where state='CA'", objConnection)
Dim objReader As SqlDataReader = objCommand.ExecuteReader()
4 、用 read() 方法检测查询结果是否有记录
While objReader.Read()
...
end while
5 、关闭 reader 对象,关闭数据库连接
objReader.Close()
objConnection.Close()
DataSet 对象
数据集( DateSet ):使用以离线 的方式来操纵数据,这样可以节省系统资源,从而提高应用程序的伸缩性。
使用 DataAdapter 及 DataSet 对象
常用步骤:
1) 创建数据库连接:
Dim strConnect As String
strConnect = "server=localhost;uid=sa;pwd=;database=pubs"
Dim objConnect as new sqlconnection(strconnect)
2) 执行 SQL 语句( select,insert,update,Delete)
Dim strSelect As String
strSelect = “SELECT * FROM authors WHERE zip LIKE ‘94%%%’”
3) 创建 DataSet 对象
Dim objDataSet As New DataSet()
4) 创建 DataAdapter 对象
Dim objDataAdapter As New SqlDataAdapter(strSelect, objConnect)
5) 用 DataAdapter 的 Fill 方法填充 DataSet 对象
objDataAdapter.Fill(objDataSet, "Books")
6) 创建 DataSet 的默认试图 DataView 作为数据源
Dim objDataView As New DataView(objDataSet.Tables("Books"))
dgrResult.DataSource = objDataView
l .NET framework 中的 ADO.NET 是一组类,允许应用程序与数据库交互,以便检索和更新信息
l DataSet 和 DataReader 是 ADO.NET 的两个重要组件。
l 每种 .NET 数据提供程序都是由以下四个对象组成:
l Connection
l Command
l DataReader
l DataAdapter
l DataSet
l Connection 对象用于在应用程序和数据库之间建立连接
l Command 对象允许向数据库传递请求、检索和操纵数据库中的数据