没有合适的资源?快使用搜索试试~ 我知道了~
ADO.NET精简教程(快速入门)
需积分: 9 8 下载量 163 浏览量
2009-05-24
20:37:32
上传
评论 1
收藏 262KB DOC 举报
温馨提示
试读
28页
本资源主要简介ADO精简入门类及其用法,希望对初学者有帮助!
资源推荐
资源详情
资源评论
跟我学 ADO.NET (1)--层次结构
微软设计 ADO.NET 的目的就是为了帮助开发人员开发在 Intranet 和 Internet 上使用的高效多层数据库应
用程序。
ADO.NET 中的数据连接有两种方式:直接连接和断开连接。直接连接中的主要对象是
command、connction、DataReader 等对象;在断开连接中,主要有 DataSet 以及它包含的 DataTable
和 DataRelation 对象。AAA 上图中的虚线将对象模型分为两部分。虚线左边的对象是连接对象。这些对象
直接与数据库通信,以管理连接和事务,以及从数据库检索数据和向数据库提交所做的更改。虚线右边的
对象是断开连接对象,允许用户脱机处理数据。下面是对几个重要对象的简单说明:
Connection 对象:与数据源建立连接,连接 sql server7.0 或更新版本数据库用 SqlConnection,连接
OLEDB 数据源使用 OledbConnection.
Command 对象:对数据源执行 SQL 命令并返回结果,SQL Server7.0 或更新版本用
SqlCommand,OLE DB 数据源使用 OledbCommand.
DataReader 对象: 读取数据源的数据,只能将数据源的数据从头到尾依次读出,Sql server7.0 或
以上版本使用 SqlDataReader,Oledb 数据源使用 OledbReader
DataAdapter 对象:对数据源执行操作并返回结果,在 DataSet 与数据源之间建立通信,将数据源中
的数据写入 DataSet ,或根据 DataSet 中的数据必定数据源。Sql server7.0 或以上版本使用
SqlDataAdapter,Oledb 数据源使用 OledbAdpater.
DataSet 对象:AAAA 服务器内存中的数据库
DataView 对象: 用于显示 DataSet 中的数据A 。
-------------------
为了满足编程结构的需要,ADO.NET 的一个主要目标就是要将数据操作和数据访问分开。要完成
这个任务,ADO.NET 库有两个核心组件(注意,并不是 COM 意义上的组件):DataSet 和.NET“数据提
供者 provider”。
DataSet 是非连接的、位于内存中的数据存储,同学们可以直接把它看成是数据库在内存中的镜像
(image),主要负责对数据的操作;
后者是一套特有的组件,用于访问特殊类型的数据源,也就是后者是负责数据访问的。它是专门为
数据处理以及快速的只进、只读访问数据而设计的组件。它的几个对象,前面已经简单的叙述了。
跟我学 ADO.NET(2)--数据库的连接和浏览
前面我们已经讲过了 ADO.NET 的结构,下面我们来简单讲讲如何具体的连接数据库,浏览数据:
一、创建连接:
Connection
和
Command
由于书写的原因,可视化的操作不好书写,这里主要是使用代码的方式来描述。
为了访问数据库的数据,就必须要连接数据库,然后才能执行适当的数据库操作。所以,首先就
得创建一个连接 Connection 来连接到数据库。Connection 对象的操作很简单,就是:open 和 close,以
及改变数据库和管理事务。ADO.NET 中每个驱动程序都有自己的独有的 Connection 对象,主要是这么几
种:
(1)System.Data.OLEDB 提供的 OleDbConnection 对象,可以用来访问 Access
创建连接的代码:
string constr = "Provider=Microsoft.Jet.OleDB.4.0; DataSource=数据库名" ;
OleDbConnection oc = new OleDbConnection(constr);
(
2
)
System.Data.Sqlclient
提供的
SqlConnection
,主要是
用于连接
SQL Server
代码:
string constr = "DataSource=
(
local
)
; Initial Catalog=
数据库
名
; UserID=
用户名
; Password=
密码
";
--
或者A
constr = "DataSource=
机器名
; Database=
数据库名
;
Integrated Security=sspi";
SqlConnection scon = new SqlConnection(constr);
(3)System.Data.Odbc 提供的 OdbcConnection,主要用于访问不是 SQL
Server、Oracle、Access,也不是 OLE DB 驱动的其他数据源
代码:--连接到 acess
odbcConnection ocon = new OdbcConnection("Driver={Microsoft Access Driver(*.mdb)}; DBQ=c:\\
db1.mdb";);
(4)System.Data.OracleClient 提供的 OracleConnection,一看就知道是用来访问 Oracle 的
代码:
OracleConnection Ocn = new OracleConnection("DataSource=Oracle9i;Integrated Security=sspi");
因为我们 ATA 的课程体系的关系,我们以后就主要讲解第二种 SqlConnection。
上面简单的讲解了如何创建一个连接,接下来我们来看看 Connection 对象有哪些主要的方法:
Close:关闭连接对象与数据源的连接
CreateCommand:创建并返回一个与该 Connection 对象相关联的 Command 对象
Open:通过 ConnectionString 属性,打开数据库连接
BeginTransaction:启动连接数据的事务
ToString:将连接对象强制转换为字符串类型
......
前面讲过,要操作数据库就首先要和数据库建立连接。好了,我们现在已经创建了连接,那么接下来
我们就来试试向数据库发出指令,进行数据操作了。所以,下面我们就一起来认识一下专司发出指令的
Command 对象。
Command
对象
主要有下面几个属性:
CommandText:用于设置要队数据源执行的 SQL 语句或者存储过程,该属性是字符串类型
CommandType:获取或者设置一个指示如何解释 CommandText 属性的值
Connection:获取或者设置 Command 实例使用的连接对象
Parameters:获取一个参数集合
Transaction:获取或者设置事务处理
Command
对象的常用方法:
Cancel 方法:用来取消执行 Command,也就是说,使用该方法可以来退出一个命令的执行。
ExecuteNonQuery 方法:可以用来执行目录操作(比如查询数据库的结构或者创建表等),以及通过执
行 SQL 的 update、insert 或者 delete 语句。该方法的特点是不会返回某一行具体数据,而是只返回一个
int 值表示查询修改所影响的行数;对于其他操作,返回值是-1。如果发生回滚,返回值也是-1。
ExecuteReader 方法:用来将 CommandText 发送到 Connection,然后生成一个 DataReader。其返回
值是一个查询所产生的行的具体数据。
ExecuteScalar 方法:该方法用来执行查询,并仅返回查询返回结果集的第一行的第一列,也就是说其返
回值是一个单个值,或者说是标量值;而其他数据一律被忽略掉。该方法效率高过 ExecuteReader。
Prepare 方法:用来在数据源上创建该命令的预备版本。在调用 Prepare 之前,要制定要准备的语句中的
每个参数的数据类型和数据长度。对于每个具有可变长度数据类型的参数,必须将 size 属性设置为所需
的最大值;否则,Prepare 可能会返回错误。
好了,了解了这些以后我们可以举个简单的例子:
string constr = "DataSource=机器名; Database=数据库名; Integrated Security=sspi";
SqlConnection scon = new SqlConnection(constr); --创建连接
scon.open();AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA --打开连接
SqlCommand sqlCmd1 = new SqlCommand(); --创建一个 command 对象
sqlCmd1.Connection = scon; --设置该 command 对象使用的连接就是 scon
sqlCmd1.CommandText = "select productid,unitprice from product" ; --设置 command 对象的具体指令
值
SqlDataReader sdr = SqlCmd1.ExecuteReader();--执行 command 对象,并返回一个只读的结果集
如果需要将 SqlDataReader 对象的结果集读取出来比如,控制台打印产品价格,那么使用
while(sdr.read()) {
Console.write(sdr["unitprice"]);
}
既然已经讲到了这个很常用的 DataReader,那么顺便讲一下它的主要属性和方法吧
二、浏览数据
DataReader 的特点:访问数据速度快,占用资源少,只能一条一条的显示数据,向前读取。使用时
必须显式地打开和关闭连接。
DataReader 的主要属性有:
FieldCount:该属性返回一个 int 值,默认值是-1.它表明结果集中的数据列的数目。如果没有数据,则值
为 0
HasRows:如果 DataReader 包含一行或者多行,则该属性返回 true,否则为 false
IsClosed:判断当前 DataReader 对象是否关闭
RecordsAffected:用来确认操作(或者多次查询)所修改的行数。如果没有任何行收到影响或者语句失
败了,则该属性返回 0. 一般,如果想要执行一个单独的查询操作,可以使用 Command 对象的
executeNonQuery 方法
DataReader 对象的主要方法:
Close:在使用 DataReader 时,应该尽快的在结果集循环中关闭 DataReader
GetValue 和 GetValues:该方法类似于 Item 属性。提供 int 值,GetValue 方法将获取本机格式表示的指
定序号处的列的值。而 GetValues 方法则将一行的内容存储在一个数组中。
剩余27页未读,继续阅读
资源评论
Longteng8851
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功