- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 城市公共空间“以人为本”设计内涵探析.doc
- 售后序列岗位任职资格及胜任能力描述(试行).pdf
- 2010-75第04章财政总预算会计的收入.doc
- 色带通用表1.doc
- 2011期末答案及评分标准A.doc
- WebLogic_10G相关配置.doc
- 北师大版五年级上册数学期中试卷(修改稿).doc
- 名医...北京四大名医之----永远怀念汪逢春先生.doc
- 人教版 五年下册第二单元练习.doc
- 小学数学五年级上册期中检测试卷.doc
- 教育考试服务提升项目一智能安检设备竞争性磋商文件.pdf
- 2024年广东省郁南县《一级注册建筑师之建筑设计》考试必刷100题内部题库附答案(完整版).docx
- 2024年广西壮族自治区灌阳县《一级注册建筑师之建筑设计》资格考试必背100题题库附答案(预热题).docx
- 2024年贵州省独山县《一级注册建筑师之建筑设计》资格考试必刷100题内部题库附答案(典型题).docx
- 幼儿园病媒生物防治工作总结真题.pdf
- 2023年广东省潮州市湘桥区城西街道新南(社区工作人员)自考复习100题模拟.pdf
- 2024年广西壮族自治区邕宁区《一级注册建筑师之建筑设计》资格考试必刷100题王牌题库附答案【实用】.docx
- 2024年贵州省道真仡佬族苗族自治县《一级注册建筑师之建筑设计》资格考试完整版【夺分金卷】.docx
- 2024年广西壮族自治区上思县《一级注册建筑师之建筑设计》资格考试必刷100题大全含答案【预热题】.docx
- 2023-2024学年一年级上学期语文测试卷附答案(能力提升).pdf
文档评论(0)