DataTable和DataSet.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档