已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本章内容 DataSet的基本构成 访问和填充DataSet 修改DataSet及数据更新 本章重点 DataSet的基本构成 常用子对象 属性和方法 使用DataSet与DataAdapter配合完成常规数据库操作 DataSet 数据集 对象是ADO NET的核心构建之一 它是数据的内存表示形式 提供了独立于数据源的一致关系编程模型 DataSet表示整个数据集 包括表 约束与表与表之间的关系 由于DataSet独立于数据源 故其中可以包含应用程序的本地数据 也可以包含来自多个数据源的数据 可以把数据集理解为内存中的一个临时数据库 它把应用程序需要的数据临时保存在内存中 由于这些数据都缓存在本地计算机中 就不需要与数据库服务器一直保持连接 当应用程序需要数据时 就直接从内存中的数据集中读取数据 也可以修改数据集中的数据 然后把数据集中修改的数据写回数据库 8 1 1DataSet DataAdapter和数据源之间的关系 数据集不直接与数据库联系 数据集与数据库之间的联系是通过 NET数据提供程序来实现的 因此数据集是独立于任何数据库的 DataSet是实现ADO NET断开式连接的核心 通过DataAdapter从数据源获得数据后就断开了与数据库之间的连接 此后应用程序所有对数据源的操作 均转向到DataSet 当所有这些操作完成后 可以通过DataAdapter提供的数据源更新方法将修改后的数据写入数据库中 8 1 2DataSet的组成结构和工作过程1 DataSet的组成结构 数据集与数据库的结构相似 数据集中也包含多个数据表 DataSet主要由数据表集合 数据关系集合和ExtendedProperties 8 1 2DataSet的组成结构和工作过程1 DataSet的基本工作过程首先 完成与数据库的连接 DataSet在存放ASP NET网站的服务器中为每一个用户开辟一块内存 通过DataAdapter 将得到的数据填充到DataSet中 然后 把DataSet中的数据发送给客户端 ASP NET网站服务器中的DataSet使用完成以后 将释放DataSet所占用的内存 客户端读入数据后 在内存中保存一份DataSet的副本 随后断开与数据库的连接 客户端应用程序所有针对数据库的操作都是指向本地DataSet的 待数据库操作完毕后 可通过DataSet DataAdapter提供的方法统一把更新后的DataSet发送到服务器中 服务器接收DataSet并修改数据库中的数据 8 1 3DataSet中的常用子对象 8 1 4DataSet对象常用属性和方法1 DataSet对象的常用属性2 DataSet对象的常用方法 8 1 5构建DataSet的方法1 通过DataAdapter的Fill 方法2 通过手工编程方式构建DataSet 自定义DataTable DataColumn DataRow及DataRelation Constraint 然后构建DataSet 最后把DataTable添加到DataSet中 1 DataTableDataTable是内存中的一个关系数据表 可以作为DataSet中的一个成员使用 也可以独立创建使用 要把DataTable作为DataSet中的一个成员使用 可按以下步骤操作 创建一个空的数据集 DataSetds newDataSet 创建一个DataTable对象 DataTabledt newDataTable 表名 在创建DataTable时 可以指定DataTable的表名 如果没有指定表名 则自动创建后缀从0开始递增的默认表名Table0 Table1 Table2等 把表添加到DataSet中 ds Tables Add 表对象名 ds Tables Add 表名 如果添加的表名在DataSet中已经存在 则会引发异常 上面创建的表没有表结构 要定义表结构 必须创建DataColumn对象 并把数据列添加到表的Columns 集合中 在为表定义结构后 通过DataRow对象把数据行添加到表的Rows 集合中 2 DataColumnDataTable的结构是通过向DataTable中添加一个或多个DataColumn对象来实现的 DataColumn对象有一些属性用于对输入数据的限制 包括数据类型 数据长度 默认值等 常用属性见表8 4 定义DataColumn有两种方法 第一种方法 先创建空的DataColumn对象 然后设置该对象的属性 例如 下面是创建StudentName 学生姓名 列的代码 DataClumndcStudentName newDataColumn 创建StudentName列对象dcStudentName ColumnName StudentName 定义列名为StudentNamedcStudentName DataType System Type GetType System String 定义类型为StringdcStudentName MaxLength 20 定义列的最大字符数为20个字符 第二种方法 在创建DataColumn对象时提供列名和列的数据类型 然后再设置该对象的属性 下面也是创建StudentName列的代码 DataColumndcStudentName newDataColumn StudentName typeof string dcStudentName MaxLength 20 在表中添加列 dt Columns Add 列对象名 ds Tables 表名 Column Add 列名 列类型 3 DataRow在DataTable中 用DataColumn定义好表结构后 可以通过DataRow把记录数据添加到DataTable中 例如 下面代码把 黄颖 添加到用DataColumn定义好的DataTable中 DataRowdrStudentInfo dt NewRow drStudentInfo dcStudentName 黄颖 8 2 1创建DataSet创建数据集对象的语法格式如下 DataSet数据集对象名 newDataSet 或DataSet数据集对象名 newDataSet 表名 其中 前一个语法格式表示要先创建一个空数据集 以后再将已经建立的数据表 DataTable 添加进来 后一个语法格式是先建立数据表 然后建立包含该数据表的数据集 8 2 2填充DataSet所谓 填充 是指将DataAdapter对象通过执行SQL语句从数据源得到的返回结果 使用DataAdapter对象的Fill方法传递给DataSet对象 其常用语法格式如下 数据适配器对象名 Fill 数据集对象名 或数据适配器对象名 Fill 数据集对象名 表名 数据库适配器对象名 为DataSetAdapter对象实例 数据集对象名 为DataSet对象 表名 为用于数据表映射的临时表名称 在第一种格式中仅实现了DataSet对象的填充 而第二种格式则实现了填充DataSet对象和指定一个可以引用的别名两项任务 填充DataSet的一般方法和步骤如下 使用Connection对象建立与数据库的连接 SqlConnectionconn newSqlConnection 创建SQLServer连接对象 这里不需要建立Command对象 创建DataAdapter对象 SqlDataAdapterda newSqlDataAdapter 创建空的DataAdapter对象 创建从数据库查询数据用的SelectSQL语句 stringSelectSql select fromStudentInfo 设置DataAdapter对象的SelectCommand属性 使用conn指定连接 执行SelectSql指定的SQL语句 从数据库中取出需要的数据 代码如下 da SelectCommand newSqlCommand SelectSql conn 创建一个空DataSet对象 DataSetds newDataSet 使用DataAdapter对象的Fill方法填充DataSet da Fill ds 将DataAdapter执行SQL语句返回的结果填充到DataSet对象 为GridView控件设置数据源 并绑定 以便在GridView控件中显示DataSet中的数据 例8 1 使用DataSet浏览数据库 程序运行后能将SQLServer数据库StudentDB的StudentInfo表中所有记录显示到GridView控件中 protectedvoidPage Load objectsender EventArgse SqlConnectionconn newSqlConnection 创建SQLServer连接对象 为连接对象的连接字符串属性赋值 其中 MICROSOF 63A313 MSSQLSERVER2008 为SQLServer服务器计算机名称 使用时要更换为自己的计算机和数据库服务器名称 注意 连接字符串中的 字符 在程序代码中需要转义 所以要写为 conn ConnectionString DataSource SQLEXPRESSInitialCatalog StudentDB IntegratedSecurity True SqlDataAdapterda newSqlDataAdapter 创建DataAdapter对象stringSelectSql select fromStudentInfo 定义从数据库查询数据用的SelectSQL语句da SelectCommand newSqlCommand SelectSql conn 执行SelectSql指定的SelectSQL语句DataSetds newDataSet 创建一个空DataSet对象da Fill ds 将DataAdapter执行SQL语句返回的结果填充到DataSet对象中GridView1 DataSource ds 设置填充后的DataSet对象为GridView控件的数据源GridView1 DataBind 例8 2 protectedvoidPage Load objectsender EventArgse SqlConnectionconn newSqlConnection 创建SQLServer连接对象 符号的作用是忽略转义字符 所以后面字符串中写一个 conn ConnectionString DataSource MICROSOF 63A313 MSSQLSERVER2008 InitialCatalog StudentDB IntegratedSecurity True SqlDataAdapterda newSqlDataAdapter 创建DataAdapter对象stringSelectSql select fromStudentInfowhereSex 女 select fromStudentInfowhereEmaillike 163 定义从数据库查询数据用的SelectSQL语句 本例是两条Select语句da SelectCommand newSqlCommand SelectSql conn 执行SQL语句并保存到da中DataSetds newDataSet 创建一个空DataSet对象da Fill ds 把da中的数据填充到ds中 将生成两个表GridView1 Caption 性别为 女 的所有记录 GridView1 DataSource ds Tables 0 使用第一个结果集为GridView1的数据源GridView1 DataBind 绑定数据源GridView2 Caption 电子邮箱地址中包含 163 的所有记录 GridView2 DataSource ds Tables 1 使用第二个结果集为GridView2的数据源GridView2 DataBind 绑定数据源 8 3 1添加新记录在用DataSet添加新记录时 需要自定义一个与要添加记录的数据表完全相同的DataTable 然后把DataTable添加到DataSet中 通过DataSet向数据表添加新记录的一般方法和步骤如下 使用Connection对象建立与数据库的连接 创建从数据库查询数据用的SelectSQL语句 通过DataAdapter对象用SelectSQL语句从数据库中取出需要的数据 使用SqlCommandBuilder对象为DataAdapter对象自动生成更新命令 创建DataSet对象 使用DataAdapter对象的Fill 方法填充DataSet 使用NewRow 方法在DataSet中填充的表对象中创建一个新行对象 为新行中各字段赋值 将新行对象添加到DataSet中填充的表对象中 调用DataAdapter对象的Update 方法将数据保存到数据库中 例8 3 使用DataSet向数据库中添加新记录 行 页面装入时在GridView控件中显示当前数据表中所有记录 代码如下 protectedvoidPage Load objectsender EventArgse SqlConnectionconn newSqlConnection 创建SQLServer连接对象conn ConnectionString DataSource 服务器名 InitialCatalog StudentDB IntegratedSecurity True 把 服务器名 更改为自己的SQLServer服务器实例名SqlDataAdapterda newSqlDataAdapter 创建DataAdapter对象stringSelectSql select fromStudentInfo da SelectCommand newSqlCommand SelectSql conn DataSetds newDataSet 创建一个空DataSet对象da Fill ds studentInfo GridView1 DataSource ds 设置填充后的DataSet对象为GridView控件的数据源GridView1 DataBind 单击 添加记录 按钮时执行的事件代码如下 protectedvoidAddRow Click objectsender EventArgse SqlConnectionconn newSqlConnection 创建SQLServer连接对象conn ConnectionString DataSource 服务器名 InitialCatalog StudentDB IntegratedSecurity True 把 服务器名 更改为自己的SQLServer服务器实例名SqlDataAdapterda newSqlDataAdapter 创建DataAdapter对象stringSelectSql select fromStudentInfo da SelectCommand newSqlCommand SelectSql conn 自动生成单表 用于将对DataSet所做的更改与关联的SQLServer数据库的更改相协调SqlCommandBuilderscb newSqlCommandBuilder da 为DataAdapter自动生成更新命令DataSetds newDataSet 创建一个空DataSet对象da Fill ds DataRowStudentNewRow ds Tables 0 NewRow 在DataSet第一个表中创建一个新行对象StudentNewRow StudentID 200902602028 为新行的各字段赋值StudentNewRow StudentName 黄蓉 StudentNewRow Sex 女 StudentNewRow DateOfBirth 1991 09 28 StudentNewRow Specialty 网络技术 ds Table
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运营管理测试题目及对应答案
- 高中地理缅甸知识点专项试题及答案
- 2026年智慧农业跨界合作协议
- 2026年固废处理岗位高频考题(含答案)
- 2026年儿科药物剂量换算培训考试试卷试题及答案
- 2026年带状疱疹疫苗目标人群筛查指南考试试卷试题及答案
- 2026年叉车货物装卸作业考核考试试卷试题及答案
- 2026年长沙市中考英语试题(含答案)
- 2026年疼痛科临床护理实务试题
- 2026年水利中级工程师评审真题(附答案)
- 2026年幼儿园新生家长会后勤园长
- 2025年新疆医科大学第一附属医院医护人员招聘考试题库及答案详解
- 工程伦理第2版
- 人民医院病房改造提升项目监理大纲服务方案投标文件(技术标)
- ICU患者镇静镇痛状态评估量表
- 社区胸痛健康教育
- 2026年山东泰安市中考语文考试真题及答案
- 2025年云南省昆明市人教PEP版六年级下册小升初模拟测试英语试卷
- EPC工程项目管理手册
- 钢化玻璃安全生产培训计划课件
- 《行政能力与实践》课件-3.1 社会调查方案的设计
评论
0/150
提交评论