版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 访问数据库教学提示ADO .NET为断开式N层编程环境提供了一流的支持,许多新的应用程序都是为该环境编写的,使用断开式数据集这一概念已成为编程模型中的焦点N层编程的ADO .NET解决方案就是DataSet教学要求了解ADO .NET结构了解ADO .NET的两个核心组件及其编程方法掌握ADO .NET访问数据库的编程方法4.1 ADO .NET概述 ADO .NET 是.NET 框架下的一种新的数据访问编程模型,是一组处理数据的类,它用于实现数据库中数据的交互,同时提供对XML的强大支持ADO .NET不但可以处理数据库中的数据,而且还可以处理其他数据存储方式中的数据,例如XML格式
2、、Excel格式和文本文件的数据 ADO .NET具有如下新特点:断开式连接技术 数据集缓存技术更好的程序间共享 易维护性 可编程性 高性能与可扩展性4.2 ADO .NET核心组件 ADO .NET的两个核心组件:.NET Framework数据提供程序.NET Framework框架数据提供程序用于连接数据库、执行命令和检索结果。可以直接处理检索到的结果,或将其放入ADO .NET DataSet 对象,以便与来自多个源的数据组合在一起DataSetDataSet是支持ADO .NET的断开式、分布式数据方案的核心对象。DataSet允许在无连接的高速缓存中存储和管理数据。DataSet
3、是数据的内存驻留表示形式,无论数据源是什么,它都会提供一致的关系编程模型DataSet实现了独立于任何数据源的数据访问。因此,它可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地的数据。DataSet 包含一个或多个 DataTable 对象的集合,这些对象由数据行和数据列以及主键、外键、约束和有关 DataTable 对象中数据的关系信息组成ADO .NET的结构4.2.1 Connection对象 在ADO .NET中,可以使用Connection对象来连接到指定的数据源4.2.2 Command对象 当建立与数据源的连接后,可以使用Command对象来执行命令并从数据源中返
4、回结果 可以使用CommandText属性来查询和修改Command对象的SQL语句当Command对象用于存储过程时,可以将Command对象的CommandType属性设置为StoredProcedure,这样就可以使用Command的Parameters属性来访问输入及输出参数和返回值4.2.3 DataReader对象可以使用ADO .NET DataReader从数据库中检索只读、只向前进的数据流查询结果在查询执行时返回,并存储在客户端的网络缓冲区中,直到使用DataReader的Read方法对它们发出请求。在默认情况下,该方法一次只在内存中存储一行,从而降低了系统开销 若要创建Da
5、taReader,必须调用Command对象的ExecuteReader方法 DataReader提供未缓冲的数据流,该数据流可以有效地按顺序处理从数据源中返回的结果。由于数据不在内存中缓存,所以在检索大量数据时,DataReader是一项合适的选择 4.2.4 DataAdapter对象DataAdapter对象用作DataSet和数据源之间的桥接器以便检索和保存数据DataAdapter 通过Fill(填充DataSet中的数据以便与数据源中的数据相匹配)和Update(更改了数据源中的数据以便与DataSet 中的数据相匹配)来提供这一桥接器DataAdapter 使用 .NET Fra
6、mework数据提供程序的 Connection 对象连接到数据源,使用 Command 对象从数据源中检索数据并将更改解析回数据源4.2.5 DataSet对象DataSet 对象是支持 ADO .NET 的断开式、分布式数据方案的核心对象ADO .NET DataSet是一种驻留内存的数据缓存,它可以作为数据的无连接关系视图。当应用程序查看和操作DataSet中的数据时,DataSet没有必要与数据源一直保持连接状态它可以用于多个不同的数据源,用于 XML 数据,或用于管理应用程序本地的数据数据集存储数据类似于关系数据库,它们都使用具有层次关系的表、行、列的对象模型,还可以为数据集中的数据
7、定义约束和关系DataTable对象用来表示DataSet中的表。一个DataTable代表一张内存中关系数据的表,在一个DataSet中可以有多个DataTable,一个DataTable由多个DataColumn组成DataRow类表示表中包含的实际数据,DataTable的Rows属性返回DataRowCollection类型的值,该集合对象包含对表中每一行的DataRow类型的值 DataTable对象之间的关系使用DataRelation来创建在DataSet中创建DataTable之后,就可以像对数据库中的表那样对DataTable执行操作,如:添加、查看、编辑和删除数据,监视错误
8、和事件以及查询数据 DataView对象类似于SQL Server中的视图DataView提供了用于排序和过滤DataTable数据表示的方法 4.3 常用服务器端数据访问 4.3.1 访问基于SQL的数据为了使页能够访问执行SQL数据访问所需的类,必须将和. SqlClient 命名空间导入到页中。 若要对SQL数据库执行选择查询,需要创建连接数据库的SqlConnection,传递连接字符串,然后构造包含查询语句的SqlDataAdapter对象。若要用查询结果填充 DataSet 对象,调用DataAdapter的Fill 方法若要使用 SqlDataReader,要声明SqlComma
9、nd而不是SqlDataAdapter。SqlCommand公开返回SqlDataReader的ExecuteReader 方法。还要注意,当使用SqlCommand时,必须显式打开和关闭SqlConnection始终需要记住在页完成执行之前关闭与数据库的连接。如果不关闭连接,则可能会在等待页实例被垃圾回收处理期间不经意地超过连接限制4.3.2 将SQL数据绑定到DataGrid与DropDownList一样,DataGrid控件也支持DataSource 属性DataGrid的DataSource属性除了采用 DataSet外,还采用IEnumerable或ICollection可以通过将D
10、ataSet中包含表的DefaultView属性分配给DataGrid的DataSource属性。DefaultView属性表示DataSet 中表的当前状态,包括应用程序代码所做的任何更改(例如,行删除或值更改)设置了 DataSource 属性后,调用DataBind()填充控件。 4.3.3 执行参数化选择可以使用 SqlDataAdapter 对象执行参数化选择。SqlDataAdapter 维护一个可用于用值替换变量标识符(由名称前的“”表示)的 Parameters 集合。在该集合中添加一个指定参数的名称、类型和大小的新 SqlParameter,然后将它的 Value 属性设置为
11、选择的值myda1.SelectCommand.Parameters.Add(new SqlParameter(State, , 2);myda1.SelectCommand.ParametersState.Value = ;注意:DataGrid的EnableViewState属性已设置为false。如果每个请求中都要填充数据,让DataGrid 存储将通过往返行程由窗体发送状态信息没有好处。因为 DataGrid 在维护状态时存储其所有数据,适当时将其关闭很重要,这样可以提高页面性能4.3.4 维护SQL数据库中的数据若要将行插入到数据库中,可以向页中添加简单的输入窗体,并在窗体提交事件处
12、理程序中执行插入命令更新SQL数据库中的数据的方法与插入数据的方法非常类似,都是可以带参数调用Command对象ExecuteNonQuery方法来完成删除数据库中的记录的过程与更新数据库记录的过程相类似,实际上,删除记录的过程要更简单,可以使用Command对象,并使用它来执行一个SQL DELETE查询(或存储过程)。也可结合使用DataSet对象和DataAdapter对象,从内存中删除一些记录,然后执行数据库中的批量删除 处理主-从关系由于DataSet对象中可以含有多个DataTable,而事实上每一个表又不可能与其他的表没有任何的关系,这样就带来了一个问题,我们如何描述两个不同的表之间的关系?ASP .NET提供了DataRelation对象来描述表和表之间的关系。DataRelation对象至少需要两个参数才能确定两个表之间的关系,这是因为在两个表的关系中,至少需要一个主键列和一个外键列,才能确定两者之间的对应关系4.3.5 访问存储过程4.5 实 训 实训项目:掌握ADO .NET访问数据库的方法 实训内容1. 创建一个Access数据库,数据库文件名为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国高纯死烧菱镁矿行业市场发展趋势与前景展望战略分析报告
- 2024-2030年中国高湿模量粘胶纤维行业市场发展趋势与前景展望战略分析报告
- 2024-2030年中国高丽红参产品市场现状调查与投资前景深度解析研究报告
- 2024-2030年中国骑行安全气囊市场应用规模现状与投资前景战略研究研究报告
- 2024-2030年中国马桶吊带行业市场发展趋势与前景展望战略分析报告
- 2024-2030年中国饲料级糖精钠行业投资风险与发展前景策略分析研究报告
- 2024-2030年中国餐厅家具行业现状发展趋势与投资战略研究报告
- 2024-2030年中国食材配送行业发展分析及投资风险预警与发展策略研究报告
- 2024-2030年中国食品级亚麻籽油行业市场发展趋势与前景展望战略分析报告
- 2024-2030年中国食品增稠剂行业竞争动态与需求规模预测报告
- 传染性单核细胞增多症课件讲义
- SQB117872023年汽车用聚酰胺(PA)(尼龙)件技术条件
- 多媒体技术07311复习资料
- 部级教育精品课 小学语文 统编版 三年级上册《秋天的雨》第一课时 学习任务单
- 珠心算《认识算盘》教学课件
- 临床常见病原体检测培训课件
- 小学劳动课教案三年级上册5篇
- 《认识周长》教学课件(人教版三年级上册)
- 2022年齐鲁石化校园招聘笔试题库及答案解析
- CAESAR-II简易操作手册
- 2022年中国通信服务股份有限公司校园招聘笔试模拟试题及答案解析
评论
0/150
提交评论