对象说明:

1、Connection 对象
   Connection 对象主要是开启程序和数据库之间的连结。没有利用连结对象将数据库打开,是无法从数据库中取得数据的。这个物件在ADO.NET 的最底层,我们可以自己产生这个对象,或是由其它的对象自动产生。

2、Command 对象
   Command 对象主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令,以及呼叫存在数据库中的预存程序等。这个对象是架构在Connection 对象上,也就是Command 对象是透过连结到数据源

3、DataAdapter 对象
   DataSetCommand 对象主要是在数据源以及DataSet 之间执行数据传输的工作,它可以透过Command 对象下达命令后,并将取得的数据放入DataSet 对象中。这个对象是架构在Command对象上,并提供了许多配合DataSet 使用的功能。在Beta 2 版中DataSetCommand 物件会更名为DataAdapter。

4、DataSet 对象
   DataSet 这个对象可以视为一个暂存区(Cache),可以把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来。DataSet 的能力不只是可以储存多个Table 而已,还可以透过DataSetCommand 对象取得一些例如主键等的数据表结构,并可以记录数据表间的关联。DataSet 对象可以说是ADO.NET 中重量级的对象,这个对象架构在DataSetCommand 对象上,本身不具备和数据源沟通的能力;也就是说我们是将DataSetCommand 对象当做DataSet 对象以及数据源间传输数据的桥梁。

5、DataReader 对象
   当我们只需要循序的读取数据而不需要其它操作时,可以使用DataReader 对象。DataReader对象只是一次一笔向下循序的读取数据源中的数据,而且这些数据是只读的,并不允许作其它的操作。因为DataReader 在读取数据的时候限制了每次只读取一笔,而且只能只读,所以使用起来不但节省资源而且效率很好。使用DataReader 对象除了效率较好之外,因为不用把数据全部传回,故可以降低网络的负载。

使用说明:

ADO.NET   使用Connection   对象来连接数据库,使用Command   或DataAdapter对象来执行SQL语句,并将执行的结果返回给DataReader   或   DataAdapter   ,然后再使用取得的DataReader   或DataAdapter   对象操作数据结果  
6.2.1   Connection   对象  
    建立Connection   对象的代码:  
OLEDB:     OleDbConnection   MyConnection=new   OleDbConnection();  
SQL:           SqlConnection       MyConnection=new   SqlConnection();  
◆他们的ConnectionString属性:获取或设置连接语句。   MyConnection.ConnectionString="server=(local);database=pubs;uid=sa;pwd=''";  
◆DataBase   属性:获取当前打开数据库  
◆DataSource属性:获取打开数据库的连接实例  
◆Open   方法:打开连接        
◆Close   方法:关闭连接  
6.2.2   Command与DataReader   对象  
Command   对象中包含了提交数据库系统的访问信息。OleDbCommand   与SqlCommand   对象,它们的基本对象和操作方法是相同的,在此介绍OleDbCommand的用法,SqlCommand的用法类推即可.  
如:   OleDbCommand     myComm   =   new   OleDbCommand(strQuery,myConnection);  
      第一个参数是sql语句或存储过程名,第二个参数是前面的Connection   对象的实例  
Command   对象的只要的属性和方法有:  
◆Connection   属性:设置或获取   Command对象使用的Connection   对象实例  
◆CommandText   属性:设置或获取需要执行的sql语句或存储过程名  
◆CommandType   属性:设置或获取执行语句的类型。它有3个属性值:StoredProceduce(存储过程)   TableDirect     Text(标准的SQL语句)   默认是Text  
◆Parameters   属性:取得参数值集合  
◆ExecuteReader   方法:执行CommandText指定的SQL语句或存储过程名,返回值类型为DataReader  
◆ExecuteNonQuery   方法:与ExecuteReader   功能相同,只是返回值为执行sql语句或存储过程受影响的记录行数  
DataReader   的主要属性和方法有:  
◆FieldCount   属性:显示当前数据记录的字段总和  
◆IsClosed     属性:   判断DataReader   对象是否已经关闭  
◆Close   方法:关闭DataReader   对象  
◆GetString方法:以String类型返回指定列中的值  
◆Getvalue   方法:以自身的类型返回指定列中的值  
◆Getvalues   方法:返回当前记录所有字段的集合  
◆Read   方法:将“光标”指向DataReader对象的下一记录  
   
Sql连接实例:  
<%@   Import   Namespace="System.Data"   %>  
<%@   Import   Namespace="System.Data.SqlClient"   %>  
<script   language="C#"   runat="server">  
void   Page_Load(Object   sender,   EventArgs   e)   {  
SqlConnection   Conn=new   SqlConnection();    
Conn.ConnectionString="server=(local);database=pubs;uid=sa;pwd=''";  
Conn.Open();  
SqlCommand   Comm=new   SqlCommand("select   *   from   Authors   ",Conn);  
SqlDataReader   dr=Comm.ExecuteReader();        
dg.DataSource=dr;  
dg.DataBind();  
Conn.Close();  
}  
</script>  
<asp:DataGrid   id="dg"   runat="server"   />  
Aeccess   数据库连接实例   (OleDbCommand   和   OleDbDataReader   使用实例)  
<%@   Page   Language="C#"   %>  
<%@   Import   Namespace="System.Data"%>  
<%@   Import   Namespace="System.Data.OleDb"%>  
<script   Language="C#"   Runat="Server">  
OleDbDataReader   dr;  
public   void   Page_Load(Object   src,EventArgs   e)  
{  
    string    
   
myConnstring="provider=Microsoft.Jet.OLEDB.4.0;   Data    
   
Source="+Server.MapPath(".")+"..\\DataBase\\db2.mdb;";  
string   strSel="Select   *   from     BookMark";  
OleDbConnection   myConn=   new   OleDbConnection  
   
(myConnstring);  
OleDbCommand   myComm=new   OleDbCommand(strSel,myConn);    
myComm.Connection.Open();  
dr=myComm.ExecuteReader();    
dg.DataSource=dr;  
dg.DataBind();  
myConn.Close();  
}  
</script>  
<html>  
<body>  
<form   Runat="Server">  
<asp:DataGrid   id="dg"   runat="server"   />  
</form>  
</body>  
</html>  
   
++++++++++++++++++++++++++++++++++++++++++++++++  
++++++++++++++++++++++++++++++++++++++++++++++++

6.3.3   DataSet   与DataAdapter  
DataReader   对象只能实现对数据的读取,不能完成其他的操作

DO.NET提供一款更强大的数据操作对象――DataSet   可以将DataSet看成一个非连接的数据库,因为DataSet的内部存储结构与数据库很类似,拥有数据表(DataTable)数据表关联(DataRelation)。DataSet中可以存储多张表等。DataSet拥有类似于数据库的结构,但它并不等同于数据库。首先他可以存储来自数据库的数据,而且还可以存储其他格式的数据,比如   XML格式文档;  
1.查询数据  
讲到DataSet的数据库应用,先要了解ADO.NET中的另一个对象DataAdapter   .  
它也分为SqlDataAdapter   和OleDbDataAdapter  
建DataAdapte:  
OleDbDataAdapter     MyAdapter=new   OleDbDataAdapter();  
SqlDataAdapter           MyAdapter=new   SqlDataAdapter();  
取得的DataAdapter   对象时必须赋予一个连接对象:  
MyAdapter.SelectCommand.Connection   =   MyConn;   或  
MyAdapter.UpdateCommand.Connection   =Myconn;   或  
MyAdapter.DeleteCommand.Connection   =   MyConn;   或  
MyAdapter.InsertCommand.Connection   =Myconn;  
如果需要执行SQL语句,那么还必须给相应的CommandText   属性赋值。代码为:  
MyAdapter.*Command.CommandText   =   SQL语句;  
写这么多行代码似乎有些麻烦,如果你只是查询数据库,则可以在建立   DataAdapter实例时就完成上述工作。  
OleDbDataAdapter   MyAdapter   =   new   OleDbDataAdapter(strSelect,objConnection);  
<%@   Page   Language="C#"   Runat="Server"%>  
<%@   Import   Namespace="System.Data"%>  
<%@   Import   Namespace="System.Data.OleDb"%>  
<script   Language="C#"   Runat="Server">  
public   void   Page_Load(Object   src,EventArgs   e)  
{  
    string    
   
MyConnString="Provider=Microsoft.Jet.OLEDB.4.0;Data    
   
Source="+Server.MapPath(".")+"http://www.cnblogs.com/yhb199/admin/file://\\DataBase\\db3.mdb/;";  
string   strSel="select   *   from   Score";  
//建立一个DataSet   实例  
DataSet   ds=new   DataSet();  
OleDbConnection   MyConn=   new   OleDbConnection(MyConnString);  
OleDbDataAdapter   MyAdapter   =   new   OleDbDataAdapter(strSel,MyConn);  
MyAdapter.Fill(ds,"Score");  
dg1.DataSource=ds.Tables["Score"].DefaultView;  
dg1.DataBind();  
}  
</script>  
<asp:DataGrid   id="dg1"   runat="Server"    
    Headerstyle-BackColor="#aaaadd"  
    AlternatingItemstyle-BackColor="#eeeeee"  
/>  
将DataAdapter   于   DataSet   相联系的是   DataAdapter   对象的   Fill   方法。他有很多中用法:     MyDataAdapter.Fill(DataSet)                 MyDataAdapter.Fill(DataSet,TableName)  
MyDataAdapter.Fill(DataSet,   StartRow   ,   RowsCount,   TableName)  
DataSet   绑定至   DataGrid   控件显示:  
1.dg1.DataSource=   ds.Tables[“Score”].DefaultView;  
dg1.DataBind();  
2.dg1.DataSource=ds;  
dg1.DataMember=”Score”;  
dg1.DataBind();  
提示:   DataSet中的各种集合,访问子项有两种方法,一种是用子项的名,一种是用数字索引.比如要访问表”Score”,可以用:   DataSet.Tables[0]   访问   (多张表依次类推)  
   
2.   插入数据:   DataSet   的结构和数据库相似,所有插入数据实质上就是在DataSet   的数据表里插入一行(DataRow)  
//新建一行  
DataRow   dr=   ds.Tables[“Score”].NewRow();  
                dr.   [“Name”]   =   “addme”;  
                dr.   [“class”]   =”201”;  
ds.Tables[“Score”].Rows.Add(dr);     //将新建的行加到DataTable   的DataRow集合中  
这样对DataSet的操作仅仅是在DataSet中执行,并不影响数据库中的数据,要使用DataAdapter   的   Update   方法(有多种方法).  
    1.   DataAdapter.Update(DataSet)   ;       2.   DataAdapter.Update(DataSet,   TableName);  
3.更新数据:   实际就是在DataSet   数据行上面直接修改数据  
DataRow   dr   =   ds   .Tables[“Score”].Rows[0];     //取出第一行  
dr.   [“Name”]   =   “比尔”;     //修改  
                dr.   [“class”]   =”201”;  
如果要更新数据库,则再调用   Update   方法        
4.删除数据:   找到相应的数据行,然后删除  
DataRow   dr   =ds.Tables[“Score”].Row[0];     dr.Delete();  
注意:   DataAdapter   对象在数据发生改变时,并不能自动产生数据库系统所需的交易sql语句,所有要建立一个CommandBuilder   对象   它能自动产生交易的sql语句.  
OleDbCommandBuilder   custcb   =   new   OleDbCommandBuilder(MyAdapter);  
5.DataSet   的其他特征  
DataSet   、DataTable   和DataRow   都有一个十分有用的方法----RejectChanges,  
它时操作对象拒绝已经发生的改变,将数据复原.该方法于AcceptChanges   HasErrors等属性连用非常有用.  
If   (DataSet.HasErrors)  
{  
    DataSet.RejectChanges();  
}  
else  
{  
    DataSet.AcceptChanges();

转载于:https://www.cnblogs.com/yhb199/articles/1502958.html

ADO.NET中的五个主要对象介绍及使用相关推荐

  1. 浅谈ADO.NET中的五个主要对象

    ADO.NET 对象模型中有五个主要的组件,分别是Connection 对象.Command 对象.DataSetCommand.DataSet 以及DataReader.这些组件中 负责建立联机和数 ...

  2. ADO.NET中的五个主要对象

    Connection:主要用来开启程序和数据库之间的连接,没有利用Connection对象连接数据库,是无法从数据库中取得数据的.Close()和Dispose()的区别就是Close以后还可以Ope ...

  3. [No0000BC]ADO.NET中的几个主要对象

    ADO 指 ActiveX 数据对象(ActiveX Data Objects). 从一个 ASP 页面内部访问数据库的通常的方法是: 创建一个到数据库的 ADO 连接 打开数据库连接 创建 ADO ...

  4. python3中异常处理_python中的五种异常处理机制介绍|python3教程|python入门|python教程...

    https://www.xin3721.com/eschool/python.html 从几年前开始学习编程直到现在,一直对程序中的异常处理怀有恐惧和排斥心理.之所以这样,是因为不了解.这次攻pyth ...

  5. ADO.NET中五个对象

    一.五类对象 1.Connection对象: connection对象是开启数据库与程序之间的连接,是一个连接对象,用来创建连接对象,没有这个对象是无法从数据库获取到信息.它在ADO.NET最底层. ...

  6. 深入分析ADO.NET中的DataSet对象

    ADO.NET是.net Framework SDK中用以操作数据库的类库的总称.而DataSet类则是ADO.NET中最核心的成员之一,也是各种开发基于.Net平台程序语言开发数据库应用程序最常接触 ...

  7. ADO.NET中COMMAND对象的ExecuteNonQuery、ExcuteReader和ExecuteScalar方法

    1.ExecuteNonQuery方法. 该方法执行更新操作,即与UPDATE.INSERT.DELETE等语句有关的操作,在这种情况下,返回值是命令影响的行数.对其他语句,如SET或CREATE,则 ...

  8. ADO.NET中5大对象简介

    ADO.NET中5大对象简介 ADO.NET在以前的学习中接触过,并以应用过,但并没有好好的总结过.最近这段时间的学习又复习了这块的知识,下面就我现在所知道的总结归纳一下. ADO.NET是基于XML ...

  9. PHP中的MySQLi扩展学习(五)MySQLI_STMT对象操作

    PHP中的MySQLi扩展学习(五)MySQLI_STMT对象操作 就像 PDO 中的 PDO_Statment 对象一样,MySQLI_STMT 对象也是一个预处理语句所形成的对象,专门用来操作 M ...

最新文章

  1. IDEA Maven 项目默认编译项目为JDK 1.5
  2. Go 语言编程 — 函数
  3. 一致性hash算法虚拟节点_Hash算法和一致性Hash算法
  4. 在 Angularjs 中 ui-sref 和 $state.go 如何传递参数
  5. log4j在web中的使用
  6. 国内 UOS 统一操作系统曝光;联想宣布要 All in 5G​;Android Studio 新版发布 | 极客头条...
  7. 吴恩达神经网络和深度学习-学习笔记-6-训练集、验证集和测试集 + 偏差bias和方差variance
  8. 一点总结,手机应用开发前景
  9. yuemiao-开发(一)
  10. unity将指定UI图片置为灰色
  11. 《最好的告别》:如何优雅地走向生命终点
  12. NetApp ADP (Advanced drive partitioning) 介绍
  13. 类型多样的人物ps后期素材素材,速来收藏
  14. 开发的一些 h5 游戏
  15. 读取太阳紫外辐照谱数据
  16. 存储格式在Hive的应用
  17. T3出行快手首秀直播PK赛项目总曝光破亿
  18. Maven项目导入idea爆红且依赖全部没有导进来的解决方法
  19. linux上如何写脚本运行?
  20. 在JAVA类中解析GOOGLE MAP地址和反向解析纬经度

热门文章

  1. mysql 5.6.29编译安装_MySQL-5.6.29源码编译安装记录
  2. 实现if_如何解决开发中 if...esle 代码过多的问题,强烈推荐!
  3. c语言中二进制文件的访问速度比文本文件快,以下叙述中错误的是( )。A.C语言中对二进制文件的访问速度比文本文件快B...._考试资料网...
  4. 求助matlab分解质因数,Matlab
  5. centos 如何登陆mysql_[CentOS 0010] CentOS 配置mysql允许远程登录
  6. 测试的目的_为什么需要测试?(软件测试的目的)
  7. python 数组参数_在Python中获取数组作为GET查询参数
  8. 开发日记-20190802 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 18
  9. 机器学习案例 特征组合——高帅富 冷启动——从微博等其他渠道搜集数据进行机器学习 用户年龄——线性分段处理...
  10. redis实现分布式锁——核心 setx+pipe watch监控key变化-事务