ADO.NET的几大对象详解
DataReader
DataReader对象是一个简单的数据集,用于从数据源中检索只读数据集,常用于检索大量数据。DataReader对象只允许以只读、顺向的方式查看其中所存储的数据,提供一个非常有效率的数据查看模式,同时DataReader对象还是一种非常节省资源的数据对象。 DataReader对象可通过Command对象的ExecuteReader方法从数据源中检索数据来创建。
DataReader属性
DataReader对象常用属性如下表所示: FieldCount 只读,表示纪录中有多少字段 HasMoreResults 表示是否有多个结果,本属性和SQL Script 搭配使用。 HasMoreRows 只读,表示是否还有资料未读取 IsClosed 只读,表示DataReader 是否关闭 Item 只读,本对象是集合对象,以键值(Key)或索引值(Index)的方式取得纪录中某个字段的数据 RowFetchCount 用来设定一次取回多少笔记录,预设为值为1 笔
DataReader方法
DataReader对象常用方法如下表所示: 方法 说明 Close 将DataReader 对象关闭 GetDataTypeName 取得指定字段的数据型态 GetName 取得指定字段的字段名称 GetOrdinal 取得指定字段名称在纪录中的顺序 GetValue 取得指定字段的数据 GetValues 取得全部字段的数据 IsNull 用来判断字段内是否为Null 值 NextResult 用来和SQL Script 搭配使用,表示取得下一个结果 Read 让DataReader 读取下一笔记录,如果有读到数据则传回True,若没有纪录则传回False
示例:
//连接数据库
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=(local);Integrated Security=SSPI;Initial Catalog=db_showHouse";
//打开连接
conn.Open();
SqlCommandcmd = new SqlCommand("select User_names from tb_User", conn);
SqlDataReader drNew = cmd.ExecuteReader();
if (drNew.HasRows)
{
while (drNew.Read())
{
MessageBox.Show(drNew[0].ToString());
}
}
drNew.Close();
ADO.NET的DataSet数据模型
因为DataSet可以看做是内存中的数据库,也因此可以说DataSet是数据表的集合,它可以包含任意多个数据表(DataTable),而且每一 DataSet中的数据表(DataTable对应一个数据源中的数据表(Table)或是数据视图(View)。数据表实质是由行(DataRow)和 列(DataColumn)组成的集合为了保护内存中数据记录的正确性,避免并发访问时的读写冲突,DataSet对象中的DataTable负着维护每 一条记录,分别保存记录的初始状态和当前状态。从这里可以看出DataSet是与只能存放单张数据表的Recordset是截然不同的概念。 DataSet对象结构还是非常复杂的,在DataSet对象的下一层中是DataTableCollection对象、 DataRelationCollection对象和ExtendedProperties对象。上文已经说过,每一个DataSet对象是由若干个 DataTable对象组成。DataTableCollection就是管理DataSet中的所有DataTable对象。表示DataSet中两个 DataTable对象之间的父/子关系是DataRelation对象。它使一个DataTable 中的行与另一个DataTable中的行相关联。这种关联类似于关系数据库中数据表之间的主键列和外键列之间的关联。 DataRelationCollection对象就是管理DataSet中所有DataTable之间的DataRelation关系的。在 DataSet中DataSet、DataTable和DataColumn都具有ExtendedProperties属性。 ExtendedProperties其实是一个属性集(PropertyCollection),用以存放各种自定义数据,如生成数据集的SELECT 语句等。
DataSet对象的三大特性
通过上面几节中的介绍和本节中的分析,我们可以总结出DataSet对象的三大特性: (1) 独立性。DataSet独立于各种数据源。 (2) 离线(断开)和连接。 (3) DataSet对象是一个可以用XML形式表示的数据视图,是一种数据关系视图。
DataSet使用方法
在实际应用中,DataSet使用方法一般有三种: (1) 把数据库中的数据通过DataAdapter对象填充DataSet。 (2) 通过DataAdapter对象操作DataSet实现更新数据库。 (3) 把XML数据流或文本加载到DataSet。
DataAdapter
表示一组 SQL 命令和一个数据库连接,它们用于填充 DataSet和更新数据源。 命名空间:System.Data.Common 程序集:System.Data(在 system.data.dll 中)
语法
public class DataAdapter : Component, IDataAdapter
备注
DataAdapter 用作 DataSet 和数据源之间的桥接器以便检索和保存数据。DataAdapter 通过映射Fill(这更改了 DataSet 中的数据以便与数据源中的数据相匹配)和Update(这更改了数据源中的数据以便与 DataSet 中的数据相匹配)来提供这一桥接器。 如果所连接的是 SQL Server 数据库,则可以通过将SqlDataAdapter与关联的SqlCommand和SqlConnection对象一起使用,从而提高总体性能。对于支持 OLE DB 的数据源,请使用 DataAdapter 及其关联的OleDbCommand和 OleDbConnection 对象。对于支持 ODBC 的数据源,请使用 DataAdapter 及其关联的OdbcCommand和OdbcConnection对象。对于 Oracle 数据库,请使用 DataAdapter 及其关联的OracleCommand和OracleConnection对象。
转载于:https://www.cnblogs.com/Aclie/archive/2011/05/26/2058318.html
ADO.NET的几大对象详解相关推荐
- jQuery的deferred对象详解
阮一峰大神的关于jQuery的deferred对象详解 http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_ ...
- 【ES6】Promise对象详解
[ES6]Promise对象详解 一.Promise对象的含义 二.Promise对象的用法 三.Promise对象的几个应用[重点] 1.时间延迟函数 2.图片异步加载 查看更多ES6教学文章: 参 ...
- javascript BOM对象详解
javascript BOM对象详解 目标:本章节将分为9点详细介绍有关BOM对象的知识点 1.什么是BOM 2.BOM的构成 3.顶级对象window 4.window对象常见事件(页面加载事件和体 ...
- Javascript中的Document对象详解
Document对象详解 document 文挡对象 - JavaScript脚本语言描述 -------------------------------------------- ...
- 转载 雨松mono Unity获取游戏对象详解(来自我的长微博)
Unity获取游戏对象详解(来自我的长微博) 转载 自 雨松mono 本文固定链接: http://www.xuanyusong.com/archives/2768 转载请注明: 雨松MOMO 201 ...
- html内置时间对象,JavaScript中的常用事件,以及内置对象详解
原标题:JavaScript中的常用事件,以及内置对象详解 今天是刘小爱自学Java的第81天. 感谢你的观看,谢谢你. 话不多说,开始今天的学习: 学前端有一个非常权威的组织,也就是w3c,其有个专 ...
- JS----window对象详解
一.说明 他是JS中最大的对象,它描述的是一个浏览器窗口,一般要引用他的属性和方法时,不需要用"Window.XXX"这种形式,而是直接使用"XXX".一个框架 ...
- JavaScript高级编程--对象详解
对象详解 Object.prototype.hasOwnProperty() 返回布尔 (原型对象的方法) 表示是否是对象自身的属性.所有实例对象都可以访问 这个方法会查找一个对象是否有某个属性,但是 ...
- Hibernate Criteria对象详解(条件查询)
Hibernate Criteria对象详解 2014-9-1 16:21| 发布者: 传智特刊| 查看: 7290| 评论: 0 摘要: Hibernate框架是目前JavaEE软件开发的企业主流框 ...
最新文章
- Android Dialog 的使用总结(AlertDialog)
- 集群理论讲解(续三)
- 运放使用中不稳定怎么办?
- 初二男生为外婆发明认人神器,帮认亲人,20分钟召唤回家,并报出家庭地址...
- sqlyog设置自动补全_sqlyog智能提示如何设置?sqlyog智能提示设置流程介绍
- 用python画玫瑰花-用python画一朵玫瑰给你
- MySQL中针对大数据量常用技术
- JS精粹知识点和我的解释
- 普及一下IPTV行业
- Thoughtworks QA测试一面凉经
- 在word中如何制作问卷调查?原来是使用word控件技巧!
- 反斜杆e,Linux下五彩斑斓的命令行输出
- RTL8723BU移植
- DTMF通信系统设计—基于MATLAB和STM32
- 使用opencv进行USB摄像头参数配置
- 什么是css Hack
- ​川希:互联网创业赚钱就是抄抄抄,越抄越赚钱!
- EM算法 估计混合高斯模型参数 Python实现
- 【折腾日记GEN8_2】ESXI的安装
- 微信小程序系列3——页面跳转详解
热门文章
- 《虚无的十字架》—— 读后总结
- python爬虫2——下载文件(中华网图片库下载)
- 修改ECSHOP后台的商品列表里显示该商品品牌
- ASP.NET中的注释 .
- OAuth 1.0a 的 C# 代码实现
- bug的定义,分类与要求
- Linux系统简介与准备
- python中select模块_基于python select.select模块通信的实例讲解 如何用python写个串口通信的程序...
- python float精度问题_Python之☞float浮点数精度问题
- php页面的特点_带你认识PHP的四大特性八大优势