第5章 数据绑定技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
16
数据库系统开发教程
TableAdapter的命名空间
TableAdapter 是使用“数据集设计器”设计的, 但生成的 TableAdapter 类并不是作为 DataSet 的 嵌套类生成的。它们位于特定于每个数据集的独 立命名空间中。 例如,如果您有一个名为 TestDataSet 的数据集, 与 TestDataSet 中的 DataTable 关联的 TableAdapter 将位于 TestDataSetTableAdapters 命名空间中。
数据库系统开发教程
3. 类型化数据集的构成
派生于基本的数据集类,通过类视图可以查看自动 生成的类代码
数据库系统开发教程
类型化数据集对象的好处
编写程序时,可使用VS的智能提示。 编译程序时,可进行类型检查,防止错误。 运行时不用先从数据库获取架构(结构)信 息,即可使用。(弱类型要先从数据库fill后 或手工创建后,才有结构信息) 已经自动封装了数据库的一些约束。
数据库系统开发教程
2. 类型化数据集
而类型化的数据集对象则直接使用成员属性来访问。 书写代码时有智能感知功能,编译能发现错误。 一个强类型的DataTable,它的所有的字段都是通 过属性的形式来实现的。访问的代码就会象这样:
DataTable.Rows[index].columnName
类型化的DataSet,则是Visual Studio基于数据库 schema为你生成的一个类,其成员的类型都是由这 个schema决定的。类型化的DataSet本身,是由继 承 于ADO.NET中DataSet,DataTable,和DataRow 类的子类组成的
数据库系统开发教程
TableAdapter的方法
TableAdapter.Fill 用 TableAdapter 的 SELECT 命 令的结果填充 TableAdapter 的关联数据表。 TableAdapter.Update 将更改发送回数据库。 TableAdapter.GetData 返回一个用数据填充了的 新 DataTable。 TableAdapter.Insert 在数据表中创建新行。 TableAdapter.Delete 删除一行。
3.
4.
5.
6. 7. 8.
数据库系统开发教程
设置绑定后自动生成的对象
添加数据源和绑定后,VS自动生成类和窗体对象:
根据TeachingManagementDataSet生成一个类型化的数据集 对象“teachingManagementDataSet”。大写开头的是类名, 小写是类的实例,即对象。 一个“teacherBindingSource”控件,用来实现界面控件和数据 集的绑定。 一个“teacherBindingNavigator”控件,用来操作数据。其中 包含的图形按钮功能依次是:移动到首记录、移动到上一记录、 记录当前位置、表的记录总数、移动到下一记录、移动到末记 录、增加新记录、删除当前记录和保存修改。 一个“teacherTableAdapter”对象,用来访问Teacher数据表 的数据。 一个“tableAdapterManager”对象,用来管理数据集中多数据 表的保存。
20
数据库系统开发教程
修改记录
TeacherDataTable teachers; TeacherTableAdapter teacherTableAdapter = new TeacherTableAdapter(); //获取Teacher表所有数据行,或者使用Fill方法 teachers = teacherTableAdapter.GetData(); //获取第一行数据 TeacherRow teacher = teachers [0]; //修改某列 teacher.TeacherName = "王辉"; //保存修改 teacherTableAdapter.Update(teacher);
数据库系统开发教程
5.2.2 类型化数据集和TableAdapter
数据库的名字是TeachingManagement,则类型化数据集的 类名就是TeachingManagementDataSet TeachingManagementDataSet.xsd文件中定义的类主要有:
一个TeachingManagementDataSet类,继承于DataSet类型 一个TableAdapterManager类 每个加入数据源的数据表对应生成一个DataTable类([表 名]DataTable)、一个DataRow类([表名]Row)、一个 TableAdapter类([表名]TableAdapter)、一个事件参数类和一个委 托类。 例如:根据教师表(Teacher)自动生成以下类:TeacherDataTable, TeacherRow,TeacherTableAdapter,TeacherRowChangeEvent和 TeacherRowChangeEventHandler。
数据库系统开发教程
4. TableAdapter对象
TableAdapter类用来操作类型化DataTable中的数据,每个 DataTable类会对应一个类型化的TableAdapter类,负责该 DataTable的数据检索和数据保存。
例如:TeacherTableAdapter负责从数据库检索数据填充 TeacherDataTable,还负责把TeacherDataTable中的数据修改保存 到数据库中。
TableAdapter的作用
TableAdapter 提供应用程序和数据库之间的通信。 TableAdapter 连接到数据库,执行查询或存储过 程,并返回用返回数据填充的新数据表或是用返 回数据填充现有 DataTable。 TableAdapter 还用于将更新数据从应用程序发送 回数据库。
15
数据库系统开发教程
1. 非类型化数据集
前面介绍的DataSet是非类型化的数据集,访问数据 表需要使用索引下标或名称(表名/列名)来指定所 要访问的数据表或表中的数据列,书写代码繁琐, 编译程序无法辨错。 例如:
DataRow aTeacher; DataTable teachers; teachers = ds.Table[“Teacher”]; aTeacher = teachers.Rows[0]; aTeacher[“TeacherName”] = “赵飞”; //无类型的行对象 //无类型的表对象 //表名可能写错 //第一条记录 //列名可能写错
1. 2. 在Visual Studio 2008的文件菜单中选择新建一个Windows 窗体应用程序项目。 在VS2008中选择“数据→添加新数据源”,打开数据源 配置向导,用来为当前应用程序添加类型化数据集。 在数据源配置向导对话框中选择数据源为数据库,然后点 击下一步。 在选择数据连接窗口中点击新建连接按钮,会弹出建立数 据库连接的窗口。 保存新建连接的连接字符串,保存以后,当前应用程序中 的其它数据访问程序也都可以使用这个数据连接字符串。 选择需要访问的数据库表、视图、存储过程及函数等。 执行菜单“数据→显示数据源”显示添加的数据源。 将数据源拖动到窗口上,自动生成数据绑定的程序。
17
数据库系统开发教程
添加记录
//声明并实例化一个DataTable对象和一个TableAdapter对象 TeacherTableAdapter teacherTableAdapter = new TeacherTableAdapter(); TeacherDataTable teachers = new TeacherDataTable(); //新建一行,一行数据可以看成一个Teacher对象 TeacherRow teacher= teachers.NewTeacherRow(); //为新数据行的各个列赋值 teacher.TeacherID = "000601"; teacher.TeacherName = "李辉"; teacher.Sex = "男"; teacher.Title = "副教授"; teacher.Major = "计算机应用"; teacher.DepartmentID = 6; //将新建数据行加入TeacherDataTable数据表,并使用TableAdapter保存修改 teachers.AddTeacherRow (teacher); teacherTableAdapter.Update(teachers);
数据库系统开发教程
类型化数据集的使用
表、列、行等对象都是和数据库表的结构相对应,例如:
//类型化的行对象 TeachingManagementDataSet.TeacherRow aTeacher; //类型化的表对象 TeachingManagementDataSet.TeacherDataTable teachers; //类型化的数据集对象 teachers = teachingManagementDataSet.Teacher; aTeacher =teachers[0]; //第一条记录 aTeacher.TeacherName = “赵剑"; //修改教师姓名
数据库系统开发教程
删除记录
删除数据库记录
TeacherDataTable teachers; TeacherTableAdapter teacherTableAdapter = new TeacherTableAdapter(); //获取Teacher表所有数据行,或者使用Fill方法 teachers = teacherTableAdapter.GetData(); //获取第一行数据 TeacherRow teacher = teachers[0]; //删除本行数据 teacher.Delete(); //保存删除 teacherTableAdapter.Update(teacher);
第5章 数据绑定技术
数据库系统开发教程
第5章 数据绑定技术
5.1 数据绑定概述 5.2 Windows应用程序的数据绑定 5.3 Web应用程序的数据绑定
数据库系统开发教程
5.1 数据绑定技术概述
数据绑定技术是一种将用户界面的界面控件 与数据源的数据捆绑在一起的技术,使用数 据绑定可以在界面控件中通过完成一些设置 即可自动显示数据源中的数据,甚至可以在 界面控件中直接编辑数据源中的数据,而不 需要手动编程。
数据库系统开发教程
添加记录
以上代码也可以替换成:
//使用TableAdapter直接添加 TeacherTableAdapter teacherTableAdapter = new TeacherTableAdapter(); teacherTableAdapter.Insert("000601", 6, "李辉", "男", null, "副教授", "计算机应用");
Baidu Nhomakorabea
数据库系统开发教程
.NET的数据绑定技术
在.NET平台下,数据绑定技术有了进一步的 发展,主要的改进包括:
数据源更为多样。支持传统数据源、各种数据对象、 数组、支持IList接口的各种对象、实现了 IEnumerable接口的各种对象(需要用到 BindingSource控件)、甚至普通的.NET对象。 Web开发中也支持数据绑定。 数据绑定可以绑定到控件的除Text属性之外的更多 属性上,如控件大小、可见属性、控件背景色等等。
TableAdapter类中常用的方法包括:
Fill()方法和GetData()方法:用于获取数据 Insert()方法:用于增加数据行 Delete()方法:用于删除数据行 若干个Update方法:包括可以直接修改的Update方法,可以保存 DataTable中数据的Update方法等。
数据库系统开发教程
数据库系统开发教程
5.2 Windows应用程序的数据绑定
菜单“数据|添加新数据源”,籍由数据库自 动创建类型化的数据集(DataSet)和类型化 的适配器(TableAdapter) 菜单“数据|显示数据源”,可以拖放数据表 到窗体上
数据库系统开发教程
5.2.1 使用VS2008快速生成数据绑定程序