DataTable详解,以及dataview
原文地址:http://www.cnblogs.com/moss_tan_jun/archive/2010/09/20/1832131.html
得到DataTable
得到DataTable有许多方法,下面简单罗列出来:
1.2.1通过构造函数得到DataTable
DataTable() 不带参数初始化DataTable 类的新实例。
DataTable(string tableName) 用指定的表名初始化DataTable 类的新实例。
DataTable(string tableName, string tableNamespace) 用指定的表名和命名空间初始化DataTable 类的新实例。
1.2.2通过DataSet获取DataTable
DataTable dt=ds.Tables["TableName"];//TableName是表名
1.2.3 通过DataRow自定义DataTable的结构
foreach(DataRow dr in drs)
{
dt.ImportRow(dr);
}
1.3 DataTable常用属性
CaseSensitive 指示表中的字符串比较是否区分大小写。
ChildRelations 获取此DataTable 的子关系的集合。
Columns 获取属于该表的列的集合。
Constraints 获取由该表维护的约束的集合。
DefaultView 获取可能包括筛选视图或游标位置的表的自定义视图。
HasErrors 获取一个值,该值指示该表所属的
DataSet 的任何表的任何行中是否有错误。
MinimumCapacity 获取或设置该表最初的起始大小。该表中行的最初起始大小。默认值为 50。
Rows 获取属于该表的行的集合。
TableName 获取或设置DataTable 的名称。
DataTable成员之DataView
DataView类似数据库中的视图。
DataView 使您能够创建 DataTable 中所存储的数据的不同视图,这种功能通常用于数据绑定应用程序。使用 DataView,您可以使用不同排序顺序显示表中的数据,并且可以按行状态或基于筛选器表达式来筛选数据。
DataView 提供基础 DataTable 中的数据的动态视图:内容、排序和成员关系会实时反映其更改。此行为不同于 DataTable 的 Select 方法,后者从表中按特定的筛选器和/或排序顺序返回 DataRow 数组,虽然其内容反映对基础表的更改,但其成员关系和排序却则保持静态。DataView 的动态功能使其成为数据绑定应用程序的理想选择。
与数据库视图类似,DataView 为您提供了可向其应用不同排序和筛选条件的单个数据集的动态视图。但是,与数据库视图不同的是,DataView 不能作为表来对待,无法提供联接的表的视图。另外,还不能排除存在于源表中的列,也不能追加不存在于源表中的列(如计算列)。
在实际运用中,我们时常使用如下代码:
DataView dv = dt.DefaultView;
dv.Sort = "UserName"; //根据UserName排序,得到新的DataView
DataTable dtNew=dv.ToTable();//将DataView重新转为DataTable
实例篇
实例1.DataTable分组统计数据
|
Name |
Subject |
Scores |
|
Jack |
001 |
90 |
|
Jack |
002 |
85.5 |
|
Tom |
001 |
78.5 |
|
Jerry |
001 |
59 |
|
Tom |
002 |
100 |
如上表是dt中的数据,如果要分组进行统计各学生的平均科目成绩,
可以使用如下的方法(当然如果你的.Net版本支持Linq的话,可以使用Linq)
思路:找出所有的学生,遍历表,计算该学生的平均成绩,参考代码如下:
}
DataTable详解,以及dataview的更多相关文章
- C# DataSet和DataTable详解
1.C# DataSet和DataTable详解:http://www.cnblogs.com/top5/archive/2009/04/23/1441765.html 2.DataSet和DataT ...
- C# DataTable 详解
添加引用 using System.Data; 创建表 //创建一个空表 DataTable dt = new DataTable(); //创建一个名为"Table_New"的空 ...
- DataSet和DataTable详解
先构建一个结构与用户请求数据结构相同的DataTable,然后将用户的请求数据填充到构建好的DataTable中,最后将DataTable添加到DataSet中. DataTable,,DataCol ...
- 关于PagedDataSource分页属性与DataSet和DataTable详解
Asp.net提供了三个功能强大的列表控件:DataGrid.DataList和Repeater控件,但其中只有DataGrid控件提供分页功能.相对DataGrid,DataList和Repeate ...
- C# DataTable详解
添加引用 using System.Data; 创建表 //创建一个空表 DataTable dt = new DataTable(); //创建一个名为"Table_New"的空 ...
- 001_ jQuery的表格插件dataTable详解
一. 1.启用id为"datatable1"标签的html的表格jQuery库 $("#datatable1").dataTable( ) Reference: ...
- datatable详解(angular-datatable)+后台分页(springmvc)
datable常规配置,百度一大堆 function prepareDatatable(selector, options) { var defaultOptions = { autoWidth: t ...
- [转载]DataView详解
表示用于排序.筛选.搜索.编辑和导航的 DataTable 的可绑定数据的自定义视图. DataView的功能类似于数据库的视图,他是数据源DataTable的封装对象,可以对数据源进行排序.搜索.过 ...
- iPhone应用开发 UITableView学习点滴详解
iPhone应用开发 UITableView学习点滴详解是本文要介绍的内容,内容不多,主要是以代码实现UITableView的学习点滴,我们来看内容. -.建立 UITableView DataTab ...
随机推荐
- php服务器版本更新工具up2server
为什么要做这个工具 之前做php 开发的时候,每次版本更新,要把修改的文件同步到服务器,都要小心翼翼,如果漏掉了文件,那就完蛋了,KPI,奖金什么的都没了. 所以写了这个工具.代码在github h ...
- android绘制view的过程
1 android绘制view的过程简单描述 简单描述可以解释为:计算大小(measure),布局坐标计算(layout),绘制到屏幕(draw): 下面看看每一步的动作到底是 ...
- 开源游戏“2048”IOS移植版
简介: 这个游戏是我在今年(2014/05)课余时闲着无聊做的一个益智类小游戏,总共花了4个工作日才完成,为了游戏的效率,做了很多优化,目前在IE5以上浏览器能够流畅运行,运行时如果屏幕分辨率不兼容, ...
- ASP.NET中常用的几个李天平开源公共类LTP.Common,Maticsoft.DBUtility,LtpPageControl
ASP.NET中常用的几个开源公共类: LTP.Common.dll: 通用函数类库 源码下载Maticsoft.DBUtility.dll 数据访问类库组件 源码下载LtpPageC ...
- WPF学习之路(四)路由
路由事件概述 功能定义:路由事件是一种可以针对元素树中的多个侦听器(而不是仅针对引发该事件的对象)调用处理程序的事件. 实现定义:路由事件是一个 CLR 事件,可以由RouteEvent 类的实例提供 ...
- JAVA中的字符串小结
String字符串是只读的,不可变的 查看String类的源码,可以发现String类是被final关键字修饰的: 另外还可以看下String类源码中的其它方法实现,随便举个可以修改String值的方 ...
- iOS 实现Tabbarcontroller中间自定义样式 最简单的方法
先上图: 如果我们要实现中间按钮自定义样式,方法应该蛮多,这里介绍一种最简单的. 1.创建类继承:UITabBarController,如下代码都是写在该类的 .m文件里 2.定义最中间的自定义样式, ...
- linux清理内存命令
1.清理前内存使用情况 free -m 2.开始清理 echo 1 > /proc/sys/vm/drop_caches3.清理后内存使用情况 free -m4.完成! 查看内存条数命令: # ...
- x01.os.10: 输入输出
从 x01.Lab.Download 中下载源代码,进入工程目录,make 后再 bochs,即可见到如下界面: 随便打几个字,ok!按 F2,可切换到第二个终端,界面如下: 当然,按 F3 还可切换 ...
- android ProgressDialog 正在载...Loading...
final ProgressDialog pd = new ProgressDialog(mContext); pd.setMessage("正在加载..."); pd.show( ...