`
可怜狼
  • 浏览: 32951 次
  • 来自: 北京
社区版块
存档分类
最新评论

DataTable,DataView,DataRowView,DefaultView与DataSet

    博客分类:
  • c#
阅读更多
这几个是常用的,它们之前有区别也有联系。 首先讲DataTable,因为其它的都是以它为对象,或以它为基础的。 一 、DataTable:表示内存中数据的一个表。 (1)它可以通过两个方面创建,一个是通过连接数据库记取某数据库表中的某些值记录,进而在内存中形成相关的完整的记录表,即使断开数据库连接,也是仍然存在的;另一种方法是通过编程代码来创建它(即在内存中创建DataTable,这个应该很熟,这是就不多说了); (2) 这与数据库中的表是一样的,也是有行和列的,只不过它们存储的地方不一样而已,数据库中的表的数据是存储在数据库中,可以直接打开数据库表看到相应的存储数据 ,而DataTable中的数据是存储在内存中的,你看不到的; (3) DataTalbe在C#中,都有自身的一个默认的自定义视图,即DefaultView 二、DataView:自定义视图,表示用于排序、筛选、搜索、编辑和导航的 DataTable 的可绑定数据的自定义视图 (1)它是通过DataTable的DefaultView来创建的,之所以在代码开发中常用它的一个重要原因是它允许在windows窗体和web窗体中进行数据绑定显示,如web窗体窗体中的repeater,DataGrid,DataList,DropDownList的数据源本质都是它DataView (2)创建DataView可以有几种方式,1:DataView view=new DataView(DataTable) 2:DataView view=DaTable.DefaultView(); (3)DataView的行称为DataRowView(即:数据库行视图),我们常用在当一个页面中要显示某条信息时(如:详细页,编辑单条信息时),就常常用到它,其过程是:创建一个方法,返回一个DataRowView,然后在页面后台文件中,创建一个DataRowView对象,进行把数据绑定显示中页面中的相应的web控件中,如:txtTitle.Text=row["title"].ToString(),(类似ASP中的rs一样,也是用 title=rs("title")... (4)DataRowView还有一个地方是常用的是当绑定repeater控件中的任何其它web控件时,也常用DataRowView,如: protected void rptBidList1_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (i % 4 == 0 && i > 0) { e.Item.Controls.Add(new LiteralControl("")); } i++; if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { DataRowView drv = (DataRowView)e.Item.DataItem; hlDomain.NavigateUrl = string.Format("~/BidDomain.aspx?id={0}",drv["ID"]); hlDomain.ToolTip = string.Format("域名:{0}", drv["DomainName"]); .......... } } (三)、DataSet ADO.NET是.Net FrameWork SDK中用以操作数据库的类库的总称。而DataSet类则是ADO.NET中最核心的成员之一,也是各种开发基于.Net平台程序语言开发数据库应用程序最常接触的类。之所以DataSet类在ADO.NET中具有特殊的地位,是因为DataSet在ADO.NET实现从数据库抽取数据中起到关键作用,在从数据库完成数据抽取后,DataSet就是数据的存放地,它是各种数据源中的数据在计算机内存中映射成的缓存,所以有时说DataSet可以看成是一个数据容器。同时它在客户端实现读取、更新数据库等过程中起到了中间部件的作用(DataReader只能检索数据库中的数据)。   各种.Net平台开发语言开发数据库应用程序,一般并不直接对数据库操作(直接在程序中调用存储过程等除外),而是先完成数据连接和通过数据适配器填充DataSet对象,然后客户端再通过读取DataSet来获得需要的数据,同样更新数据库中数据,也是首先更新DataSet,然后再通过DataSet来更新数据库中对应的数据的。可见了解、掌握ADO.NET,首先必须了解、掌握DataSet。DataSet主要有三个特性:   1. 独立性。DataSet独立于各种数据源。微软公司在推出DataSet时就考虑到各种数据源的多样性、复杂性。在.Net中,无论什么类型数据源,它都会提供一致的关系编程模型,而这就是DataSet。   2. 离线(断开)和连接。DataSet既可以以离线方式,也可以以实时连接来操作数据库中的数据。这一点有点像ADO中的RecordSet。   3. DataSet对象是一个可以用XML形式表示的数据视图,是一种数据关系视图。 (更多有关DataSet的详细深入的知识请看http://www.yesky.com/96/1924596.shtml) 其它相关的认识: 创建 DataTable DataTable 表示一个内存内关系数据的表,可以独立创建和使用,也可以由其他 .NET Framework 对象使用,最常见的情况是作为 DataSet 的成员使用。 DataTable 是存放数据的表格,而DataView 是一个视图,每一个DataTable 都有一个 defaultview,你可以使用DataView 在DataTable根据你的查询条件,选择要操作的数据。 可以进行筛选。 简单来说 DataTable中的数据是可以改动的,而DataView 中的数据是不能改的。 就象数据库中的表和视图一样。 这就是区别。 这个其实跟cache 是没有关系的 ,关键还是在于你绑定的控件是DataList ,例如你要是绑定的是DataList,DataGridView等等复合列表控件 ,那么不管你是绑定的DataTable还是DataView 数据源,最终绑定到控件上的数据源都是DataView。
分享到:
评论

相关推荐

    Dataview转换成Datatable

    在IT领域,尤其是数据处理与分析中,Dataview与Datatable是两个常见的数据结构,它们各自具有独特的功能和用途。Dataview可以看作是Datatable的一个动态视图,它允许用户对数据进行筛选、排序、分组等操作而不会永久...

    gridview—datatable -dataset -dataview

    GridView可以与多种数据源结合,如DataTable、DataSet或Entity Framework等,通过数据绑定来展示数据。用户可以通过简单的配置和自定义模板,实现复杂的数据显示和交互。 接下来,DataTable是.NET Framework的...

    DataTable,DataView,DataGrid

    DataTable不直接与数据库交互,而是作为数据检索的结果或者独立的数据容器存在。它有自己的列定义(DataColumn)和行集合(DataRow)。DataTable允许添加、删除、修改和查询数据,提供了类似数据库表的功能。例如,...

    DataTable,DataView和DataGrid用法教程:DataTable,DataView和DataGrid中一些容易混淆的概念,详细讲解了它的区别和用法。

    - DataTable可以独立存在,也可以作为DataSet的一部分,而DataSet可以包含多个相关的DataTable。 - DataView的改动(如添加、删除、更改行)不会影响到DataTable,除非使用WriteChanges方法将更改同步回去。 - ...

    c# DataTable,DataSet导出到xls,access文件

    在C#编程中,`DataTable`和`DataSet`是.NET框架中用于处理和存储数据的常用对象。它们提供了类似于数据库的结构,可以方便地进行数据操作。本篇将详细讲解如何利用C#将`DataTable`和`DataSet`导出到XLS(Excel)和...

    DataTable,DataView和DataGrid中一些容易混淆的概念(超清晰pdf,内容可选择,复制)

    DataGrid是一个数据呈现控件,它主要用于在用户界面中展示数据,可以与DataTable或DataView进行绑定。DataGrid提供了列定义、行样式、排序、编辑等功能,用户可以通过它来浏览、编辑和操作数据。在ASP.NET中,...

    C#中替换DataSet中DataTable列名的三种思路和方法.rar

    在C#编程中,处理数据通常会涉及到对DataSet和DataTable对象的操作。DataSet是.NET Framework中的一个强大组件,它用于存储和操作离线数据,而DataTable则代表了一个表格型的数据集。在某些场景下,我们可能需要修改...

    把DataView转换成DataTable

    在.NET框架中,`DataView` 和 `DataTable` 都是用于处理数据集(DataSet)的重要组成部分。通常情况下,`DataTable` 是一个内存中的二维表格,它提供了类似数据库表的功能,而 `DataView` 则提供了一种灵活的方式来...

    DataTable,DataView和DataGrid中一些容易混淆的概念

    另一份名为"treeview的使用小结"的PDF文件可能介绍了TreeView控件的使用,这个控件常用于显示层次结构的数据,如文件系统目录结构,与DataTable、DataView和DataGrid一起,构成了.NET数据展示和操作的核心工具。...

    dataview datatable databset的区别

    在.NET框架中,数据处理和展示常常涉及到三个关键对象:DataView、DataTable和DataSet。它们在数据操作和数据绑定方面各具特色,下面我们详细探讨它们的区别。 首先,`DataTable`是一个独立的数据结构,它存储一组...

    DataTable,DataView和DataGrid

    DataTable还可以通过DataAdapter与数据库进行交互,执行诸如填充、更新或删除数据等操作。 `DataView`是DataTable的一个视图,它提供了一种灵活的方式来筛选、排序和分组DataTable中的数据。DataView并不直接存储...

    C# DataSet和DataTable详解

    C# DataSet和DataTable详解 在C#编程中,DataSet和DataTable是两个非常重要的类,它们都是ADO.NET中数据访问的核心组件。下面,我们将详细探讨这两个类的使用和特性。 创建DataSet对象 DataSet是ADO.NET中的一种...

    DataSet和DataTable有用的方法

    在.NET框架中,`DataSet`和`DataTable`是用于处理和存储数据的重要组件,它们模拟了数据库中的数据结构。`DataSet`是一个离线数据存储,它可以包含一个或多个`DataTable`,每个`DataTable`代表一个表格,就像数据库...

    C#_DataSet和DataTable详解

    在C#的.NET框架中,`DataSet`和`DataTable`是处理数据集的关键组成部分,它们提供了强大的功能来存储、操作和管理数据,尤其是在与数据库交互时。以下是对这两个核心概念的深入解析。 #### 一、`DataSet`概述 `...

    详解C#的DataSet和DataTable

    详解 C# 的 DataSet 和 DataTable DataSet 和 DataTable 是 C# 中两个非常重要的数据结构,广泛应用于数据存储、数据处理和数据显示等方面。本文将详细介绍 DataSet 和 DataTable 的概念、关系、区别和使用方法。 ...

    DataSet;DataView源码

    3. 创建DataView:基于DataSet中的DataTable创建DataView对象,可以设定排序和筛选条件。 4. 绑定DataView:将DataView绑定到控件,如DataGridView,以显示数据。 5. 操作DataView:改变排序、添加筛选,甚至可以...

    SqlDataReader与DataSet及DataTable的区别

    DataTable适合小规模的数据操作和临时存储,当需要与数据库交互但不需要完整的DataSet功能时,可以直接使用DataTable。 示例代码: ```csharp using (SqlConnection conn = new SqlConnection(connectionString)...

    XML与DataTable相互转换

    ### XML与DataTable相互转换知识点详解 #### 一、概述 在.NET框架中,XML与`DataTable`之间的相互转换是一项常用的技术。它可以帮助开发者在不同场景下灵活地处理数据,例如在网络传输、数据存储或者与其他系统...

Global site tag (gtag.js) - Google Analytics