




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据绑定是将数据源的一些元素与Windows表单的控件进行绑定的一种功能 下图显示的是将员工表的EmployeeName字段与Windows表单的文本框控件进行绑定以显示数据 根据可以通过Windows表单的控件显示的绑定值的数量 数据绑定可归类为 简单数据绑定复杂数据绑定 介绍数据绑定 简单数据绑定是将控件 如文本框或标签 绑定到数据集中的单个值的过程 数据集的值可以通过使用控件的属性绑定到控件 请思考这样一个场景 其中需要创建Windows表单来显示员工的每月工资详细信息 简单数据绑定 在本章中 你将学习 DataSet 目标 DataSet DataSet 是存储从数据库检索到的数据的对象 是零个或多个表对象的集合 这些表对象由数据行和列 约束和有关表中数据关系的信息组成 不直接与数据库交互在断开连接的环境中 既可容纳数据库的数据 也可以容纳非数据库的数据源 数据集具有其自己的对象模型 如下图所示 使用数据集和数据表 续 数据集实例是由DataSet构造函数创建的在System Data命名空间中定义 数据集的名称是可选的 不需要指定如果没有指定名称 则以默认名称NewDataSet创建数据集 使用数据集和数据表 续 DataSetempDS newDataSet EmployeeDetails 或者DataSetempDS newDataSet 使用数据集和数据表 续 数据集中的数据以DataTable对象的形式存储DataTable类属于System Data命名空间 使用数据集主要元素 数据表 DataTableobjStudentTable newDataTable Students 创建DataTable对象的实例 DataSetstudentDS newDataSet DataTableobjStudentTable studentDS Tables Add Students 创建DataTable的实例 然后将其添加到数据集的Tables集合中 使用数据集主要元素 数据表 DataColumn对象定义DataTable的列DataTable的Columns属性含有对DataColumn对象的引用 使用数据集主要元素 DataColumn 可以为列指定的一些参数 列的名称列的数据类型是否列为只读是否列允许空值是否列值在每一行必须是不同的是否列是自动递增的列是否列是表达式列 DataTableobjStudentTable newDataTable Students DataColumnobjStudentNumber objStudentTable Columns Add StudentNo typeof Int32 objStudentNumber AllowDBNull false objStudentNumber DefaultValue 25 objStudentTable Columns Add StudentName typeof String objStudentTable Columns Add StudentMarks typeof Double 使用多个DataColumn对象创建DataTable 使用数据集主要元素 DataColumn DataTable对象还具有允许行在数据集中被访问的Rows集合 DataRow对象表示DataTable中的实际数据下表描述了通过使用DataRow对象对行执行的各种方法 Add InsertAt Find Select Remove RemoveAt Delete 从表中暂时移除行 向表的末尾附加行 在指定的位置插入行 通过主键值访问表中的行 发现匹配指定条件的行 移除指定的DataRow对象 移除指定位置的行 使用数据集主要元素 DataRow 定义表结构 为Students表添加学号 姓名 分数三列DataTableobjStudentTable newDataTable Students DataColumnobjStudentNumber newDataColumn objStudentNumber DataType objStudentTable Columns Add StudentNo typeof string objStudentNumber AllowDBNull false objStudentNumber DefaultValue 25 objStudentTable Columns Add StudentName typeof string objStudentTable Columns Add StudentMarks typeof Double 向表中填充数据DataRowobjStudentRow objStudentRow objStudentTable NewRow objStudentRow StudentNo 101 objStudentRow StudentName 张三 objStudentRow StudentMarks 55 objStudentTable Rows Add objStudentRow 在DataTable对象中新建DataRow 在ADO NET中 可使用DataRelation对象导览多个表来验证和汇总数据 通过使用DataRelation对象的主键和外键约束 可创建多个表之间的关系 主键是唯一的索引 确保为特定行在表中存储的数据的唯一性 外键是可引用表中一列或多列的对表的约束 具有主键约束的表称之为父表 具有外键约束的表称之为子表 使用数据集和数据表 续 定义主键 表中的主键用于对记录进行唯一标识DataTable的PrimaryKey属性接受含有一个或多个DataColumn对象的数组 objStudentTable PrimaryKey newDataColumn objStudentTable Columns StudentNo 设置单个列为DataTable的主键 objStudentTable PrimaryKey newDataColumn objStudentTable Columns StudentNo objStudentTable Columns StudentName 为DataTable对象设置复合主键 DataTable的约束 Constraint 是对表中数据施加的限制或规则集 决定表中可以存储的数据 用于维护数据的正确性和有效性 约束的类型 ForeignKeyConstraint UniqueConstraint DataSet Relations属性获取链接表并允许从父表向子表导览的关系的集合 Rule枚举表示增强外键约束时发生的操作 各个Rule枚举值 CascadeNoneSetDefaultSetNull 当父DataRow对象删除或其唯一键更改时 删除或更新子DataRow对象如果父DataRow对象删除或其唯一键更改时 抛出异常如果父DataRow对象删除或其唯一键更改时 设置外键列值为DataColumn对象的默认值如果父DataRow对象删除或其唯一键更改时 设置外键列值为DbNull 使用数据集和数据表 续 有时 在DataSet中的数据可与另一个DataSet合并 或者 可创建DataTable对象的副本 使用户可编辑或修改数据 然后合并回原始的数据集 Merge 方法用来从多个DataSet DataTable和DataRow对象合并数据 在数据与数据集合并期间 MissingSchemaAction枚举指定当数据添加到数据集时缺失必需的DataTable或DataColumn时所采取的操作 使用数据集和数据表 续 MissingSchemaAction枚举的各个值是 AddAddWithPrimaryKeyErrorIgnore 添加DataTable和DataColumn对象以完成模式添加DataTable DataColumn和PrimaryKey对象以完成模式如果在被更新的DataSet中DataColumn不存在 则抛出异常忽略驻留在不在被更新的DataSet中的DataColumns中的数据 使用数据集和数据表 续 数据视图提供数据表中存储的数据的动态视图 如果在数据表中任何数据得到修改 与数据表关联的数据视图也将显示修改的数据 让我们了解数据视图的对象模型 使用数据视图 下图显示了数据视图的对象模型 使用数据视图 续 DataView对象创建给定DataTable对象的固定定制的视图 可创建DataView对象基于条件来显示数据 创建另一个DataView对象基于不同的条件来显示数据 下图显示通过数据视图显示定制的数据的方式 使用数据视图 续 数据视图提供数据表中数据的排序或过滤的视图 使用DataView对象在DataTable中排序通过使用Sort属性来完成 使用DataView对象过滤DataTable通过使用RowFilter和RowStateFilter属性来完成 使用数据视图 续 DataViewobjStudentView newDataView objStudentTable objStudentView RowFilter StudentMarks 60 for intctr 0 ctr objStudentView Count ctr MessageBox Show objStudentView ctr StudentNo ToString 创建DataView并对该视图应用某种筛选器 DataView对象的哪一个属性返回基于列的值的行的子集 1 FindRows2 RowFilter3 RowStateFilter4 Find 课间思考 答案 2 RowFilter 问题描述 Jane是Tebisco的HR团队的一名成员 需要存储新加入组织的员工的详细信息 需要为Jane创建应用程序 使其可添加和保存新员工的详细信息 如果有必要 可删除不在组织中工作的员工的记录 员工代码应基于表中的格式自动生成 员工详细信息将存储在HR数据库的empdetails表中 演示 在断开连接的环境中操作数据 数据集的类型 数据集的类型 类型化数据集 非类型化数据集 它是一个生成类 继承了基类DataSet的所有方法 事件和属性 表和列只能以集合的形式公开 而不能用于借助XML结构文件派生新类 使用类型化数据集访问列 stringemployeeName employeeName dsEmployees Emp 0 EmpName 从dsEmployees数据集的Emp表中第一个记录返回EmpName列 然后将其存储在employeeName字符串变量中 使用非类型化数据集访问列 stringemployeeName employeeName dsEmployees Tables Emp Rows 0 EmpName 使用Tables集合返回EmpName列 类型化数据集 类型化数据集来自于DataSet类 具有关联的XML模式 其在创建数据集时创建 XML模式包含关于数据集结构的信息 如表 列和行 XML模式定义 XSD 语言用来定义XML文档的元素和属性 类型化数据集的结构在其创建时所决定 当类型化数据集创建时 通过使用来自数据源的列名自动生成数据命令 使用数据集和数据表 续 产生类型化数据集的方法 数据 添加数据源项目 添加新项 数据集 非类型化数据集 非类型化数据集没有相关的XML模式 在非类型化数据集中 表和列表示为集合 因为没有为非类型化数据集创建XML模式 非类型化数据集的结构在编译期间是未知的 非类型化数据集用在编译期间没有决定模式的结构或使用的数据没有明确的结构的情况 使用数据集和数据表 续 非类型到类型化ds WriteXmlSchema c x xml Xsd exe d l csc x xml 在本章中 您学习了 数据集是断开连接的环境的一部分 是从数据库检索的断开连接的 缓存的记录的集合 两种主要类型的数据集 类型化数据集非类型化数据集类型化数据集来源于DataSet类 具有关联的XML模式 其在数据集创建时所创建 非类型化数据集没有关联的XML模式 因此 在编译期间非类型化数据集的结构是未知的 小结 DataSet对象包含DataTable对象的集合 每个包含一个或多个表 DataTable对象包含一个或多个列 每个由DataColumn对象所表示 DataTable对象还有Rows集合 其允许在数据集中行被访问 DataTable对象包含一个或多个行 每个由DataRow对象表示 DataRelation对象用来导览多个表来验证和汇总数据 Dat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论