- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DataTable和DataSet
DataSet和DataTable有用的方法
每一个DataSet都是一个或多个DataTable 对象的集合(DataTable相当于数据库中的表),这些对象由数据行(DataRow)、数据列(DataColumn)、字段名(Column Name)、数据格(Item),以及约束(Constraint)和有关DataTable对象中数据的关系(Relations)与数据显示排序(DataView)信息组成。
DataView用来在观察数据时提供排序和过滤的功能。DataColumn用来对表中的数据值进行一定的规限。比如哪一列数据的默认值是什么、哪一列数据值的范围是什么、哪个是主键、数据值是否是只读等。
由于一个DataSet可能存在多张表,这些表可能存在关联关系,因此用parentRelations和childRelations来表述。ParentRelations表是父表,childRelations是子表,子表是对父表的引用,这样就使得一个表中的某行与另一个表中的某一行甚至整个表相关联。
1.DataTableCollection 类
表示 DataSet 的表的集合。
DataTableCollection dtc = ds.Tables;
DataTable customerTable = dtc[Product];
2.DataTable进行动态的筛选和排序
调用DataTable.Select()方法,获取 DataRow 对象的数组。
(1)获取所有行。
DataRow[] rows = dt.Select();
(2)按主键顺序(如没有主键,则按照添加顺序)获取符合筛选条件的行。
DataRow[] rows = dt.Select(ID52);
(3)获取符合筛选条件的行,并按指定的排序条件排序。
DataRow[] rows = dt.Select(ID52,ID DESC);
(4)获取符合筛选条件和指定状态的行,并按指定的排序条件排序。
string strExpr = ID52;
string strSort = ID DESC;
DataRow[] foundRows = dt.Select(strExpr, strSort, DataViewRowState.OriginalRows);
3.DataTable进行数据统计
我们在使用SQL Server时,可以轻松地对数据进行Sum、Aver、Count等操作以获得统计结果,那么,在已经把数据检索出来的DataSet(DataTable)中如何进行统计呢?特别是通过第三方接口Web Service获得了DataSet,这个时候,没有办法去执行Select语句来获取这些统计,怎么办呢?
办法总比问题多,其实在DataTable中也是可以进行数据统计的。
下面就通过几个简单的示例,介绍一下如何无须通过逐条记录进行计算就可以轻松地获得DataTable中的记录统计结果。这里调用的是功能强大的DataTable的函数Compute。
(1)函数说明:
public object Compute(string strExpression,string strFilter);
l???????? strExpression:要计算的表达式字符串,基本上类似于Sql Server中的统计表达式。
l???????? strFilter:统计的过滤字符串,只有满足这个过滤条件的记录才会被统计。
(2)调用示例。
假设一个产品销售表P_Sell,描述商场中各销售人员的销售记录,如表5-2所示。
表5-2? 产品销售表
序号 列名 数据类型 长度 主键 允许空 说明 1 ID int 4 √ ? 流水号 2 Name varchar 50 ? √ 姓名 3 Sex smallint 2 ? √ 性别:0为女,1为男 4 Birthday datetime 8 ? √ 生日 5 ProductId varchar 20 ? √ 销售产品代码 6 Num int 4 ? √ 销售的数量 7 Price decimal 9 ? √ 销售价格 l???????? 统计所有性别为女的销售员的数量:
object n = table.Compute(count(ID), Sex = 0);
l???????? 统计所有年龄大于20岁的销售员的数量:
int c=(int)table.Compute(count(ID),
????????????????? Birthday DateTime.Today.AddYears(-20) );
l???????? 统计销售产品的平均价格:
decimal ap=(decimal)table.Compute(avg(Pr
文档评论(0)