第6章DataSet与适配器.pptx_第1页
第6章DataSet与适配器.pptx_第2页
第6章DataSet与适配器.pptx_第3页
第6章DataSet与适配器.pptx_第4页
第6章DataSet与适配器.pptx_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第6章,ADO.NETDataSet和适配器,回顾,.NET framework 中的 ADO.NET 是一组类,允许应用程序与数据库交互,以便检索和更新信息 每种 .NET 数据提供程序都是由以下四个对象组成:Connection,Command,DataAdapter以及DataReader Connection 对象用于在应用程序和数据库之间建立连接 Command 对象允许向数据库传递请求、检索和操纵数据库中的数据,本章目标,掌握记录集(DataSet)对象的结构 定义DataTable对象 定义DataRow和DataColumn对象 数据适配器(DataAdapter)对象 用Da

2、taGridView控件查看数据,使用 DataReader快速访问数据,怎样快速读取数据库的数据? 对于要求快速访问数据显示在界面上的应用程序,数据读取器DataReader是一个较好的选择,应用程序,徐礼应,美国硅谷,优秀,徐礼应,姓名:,学校:,美国硅谷,成绩:,优秀,DataReader,使用 DataReader 对象,数 据 库,认识DataReader 对象,每次读取一行数据,DataReader 的主要属性和方法,DataReader 使用步骤,使用 DataReader 检索数据的步骤: 1、创建 Command 对象 2、调用 ExecuteReader() 创建 Data

3、Reader 对象 3、使用 DataReader 的 Read() 方法逐行读取数据 4、读取某列的数据,(type)dataReader 5、关闭 DataReader 对象,获取某列的值: 方法一:指定列的索引,从0开始 方法二:指定列名,注意:DataReader 使用后必须关闭,使用 DataReader 示例2-1,private void btnDis_Click(object sender, EventArgs e) string strsql = select * from StuInfo; /初始化命令对象 sqlCmd = new SqlCommand(); sqlCmd

4、.CommandText = strsql; sqlCmd.CommandType = CommandType.Text; sqlCmd.Connection = sqlCon; /执行操作 try /打开连接 sqlCon.Open(); /执行操作 返回 sqlRead = sqlCmd.ExecuteReader(); 下一页,使用 DataReader 示例2-2,/遍历所有信息 添加到列表控件中 while (sqlRead.Read() string strInfo = ; for (int i = 0; i sqlRead.FieldCount; i+) strInfo += t

5、+sqlRead.GetValue(i) + t; lstInfo.Items.Add(strInfo); catch (Exception ex) MessageBox.Show(ex.Message); finally sqlCon.Close(); ,为什么使用 DataSet 对象,应用程序 大量的数据 来自多个数据源,大批量的查询、修改数据怎么办? 想在断开数据库连接的情况下操所数据怎么办?,使用 DataSet 对象,DataSet,数 据 库,了解DataSet 对象,DataSet 数据集 简单理解为一个临时数据库 将数据源的数据保存在内存中 独立于任何数据库,工厂的仓库,车间

6、的 临时仓库,生产线,数据源,DataSet,应用程序,驻留于内存, 临时存储数据,类似的关系,DataSet 的层次结构2-1,DataSet 的基本结构,DataSet,DataTable,DataColumn,DataRow,数据集,数据表的集合,数据表,数据列的集合,数据行的集合,数据列,数据行,DataSet 的层次结构2-2,GradeTable,ClassTable,StudentTable,DataTableCollection 数据表集合,DataTable 数据表,DataRowCollection 数据行集合,DataRow 数据行,DataColumnCollectio

7、n 数据列集合,DataColumn 数据列,DataSet工作流程,数据集,发送数据,修改数据集,传递数据,提交修改后的数据,请求数据,客户端,使用C#代码创建数据集,创建一个 DataSet 可以指定一个数据集的名称 如果不指定名称,则默认被设为NewDataSet,DataSet dataSet = new DataSet();,DataSet dataSet = new DataSet(MySchool);,DataSet 数据集对象 = new DataSet(数据集的名称字符串);,DataTable、DataColumn和DataRow 3-1,数据集中的数据以 DataTabl

8、e 对象的形式存储 DataTable 类属于 System.Data 命名空间,DataTable objStudentTable = new DataTable(Students);,创建 DataTable 对象的实例,DataSet studentDS = new DataSet(); DataTable objStudentTable = studentDS.Tables.Add(Students);,创建 DataTable 的实例,然后将其添加到数据集的 Tables 集合中,DataTable、DataColumn和DataRow 3-2,DataColumn 对象定义 Dat

9、aTable 的列 DataTable 的 Columns 属性含有对 DataColumn 对象的引用,DataTable objStudentTable = new DataTable(Students); DataColumn objStudentNumber = objStudentTable.Columns.Add ( StudentNo ,typeof(Int32); objStudentNumber.AllowDBNull = false; objStudentNumber.DefaultValue = 25; objStudentTable.Columns.Add(Studen

10、tName,typeof(Int32); objStudentTable.Columns.Add(StudentMarks,typeof(Double);,使用多个 DataColumn 对象创建 DataTable,DataTable、DataColumn和DataRow 3-3,DataRow 对象表示 DataTable 中的实际数据,/定义表结构,为Students表添加学号、姓名、分数三列 DataTable objStudentTable = new DataTable(Students); DataColumn objStudentNumber = new DataColumn(

11、); 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); /向表中填充数据 DataRow objStude

12、ntRow; objStudentRow= objStudentTable.NewRow(); objStudentRowStudentNo=101; objStudentRow“StudentName”=“张三; objStudentRowStudentMarks=55; objStudentTable.Rows.Add(objStudentRow);,在 DataTable 对象中新建 DataRow,DataSet常用属性和方法,数据集的名称是可选的,不需要指定 如果没有指定名称,则以默认名称 NewDataSet 创建数据集,DataSet empDS = new DataSet(Em

13、ployeeDetails);,添加主键约束,表中的主键用于对记录进行唯一标识 DataTable 的 PrimaryKey 属性接受含有一个或多个 DataColumn 对象的数组,objStudentTable.PrimaryKey = new DataColumnobjStudentTable.ColumnsStudentNo;,设置单个列为 DataTable 的主键,objStudentTable.PrimaryKey = new DataColumn objStudentTable.ColumnsStudentNo, objStudentTable.ColumnsStudentNa

14、me ;,为 DataTable 对象设置复合主键,为什么需要DataAdapter,如何将数据库的数据放在 DataSet 中?,DataSet 数据集,DataAdapter,数据库,DataSet 数据集,Connection 数据库连接,DataAdapter 数据适配器,数 据 库,DataAdapter对象,不同命名空间的 DataAdapter 对象,如何填充数据集,使用 DataAdapter 对象填充数据集,DataSet 数据集,使用 Fill() 方法填充 DataSet 中的表,使用 Connection 连接数据源,Connection,数 据 库,DataAdapter 的 Fill() 方法,填充数据集步骤,SqlDataAdapter 对象名 = new SqlDataAdapter(查询用sql语句, 数据库连接);,创建 SqlDataAdapter 对象,1,DataAdapter对象. Fill(数据集对象, 数据表名称字符串);,填充 DataSet,2,DataAdapter总结,DataAdapter 的主要属性和方法,总结,DataRe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论