ADO.NET入门教程:DataSet与DataReader操作数据库

需积分: 0 0 下载量 39 浏览量 更新于2024-08-19 收藏 5.99MB PPT 举报
"这篇教程主要介绍了在C#中如何使用DataSet和DataReader来访问数据库,同时讲解了数据访问的多层次架构,包括单层、两层、三层以及n层模型的优缺点。ADO.NET作为微软的数据访问技术,是.NET框架的重要组成部分,用于处理分布式和数据共享应用程序。" **DataSet详解** 1. **创建数据库连接**: 在C#中,可以使用`SqlConnection`类创建一个到SQL Server数据库的连接。连接字符串通常包含数据库服务器名、数据库名、用户名和密码。 2. **在DataAdapter中保存查询**: `SqlDataAdapter`是ADO.NET中的关键组件,用于将数据库查询与DataSet之间建立桥梁。可以设置其`SelectCommand`属性来执行SQL查询或存储过程。 3. **使用Fill方法填充DataSet**: `Fill`方法用于从数据库中获取数据并填充到DataSet中,创建一个数据表(DataTable)的副本,可以进行离线操作。 4. **创建数据视图**: `DataView`是对DataTable的动态视图,可以根据条件筛选、排序或分组数据。通过设置`DataView`的`RowFilter`、`Sort`和`Table`属性,可以实现不同的视图效果。 5. **把数据视图绑定到列表绑定控件**: 将DataView绑定到如DataGridView或ListView等控件,可以实时显示和编辑数据。 **DataReader详解** 1. **创建数据库连接**: 同DataSet,使用`SqlConnection`创建连接。 2. **打开数据库连接**: 调用`SqlConnection`的`Open`方法来打开连接。 3. **在SqlCommand中保存查询**: `SqlCommand`用于执行SQL命令,可以设置`CommandText`属性来指定SQL语句或存储过程。 4. **使用ExecuteReader方法填充DataReader**: `ExecuteReader`执行查询并返回一个`SqlDataReader`,用于按需读取结果集的行。 5. **为每条记录调用Read方法,调用Get方法取得字段**: `DataReader`是只进的,通过调用`Read`方法逐行移动,使用`GetInt32`、`GetString`等`Get`方法获取字段值。 6. **手工显示数据**: 读取的字段值可以直接用于显示或处理,但注意`DataReader`不支持更新、插入或删除操作。 7. **关闭DataReader和连接**: 使用完毕后,记得关闭`DataReader`和数据库连接,以释放资源。 **数据访问层次结构** - **单层**: 所有组件在同一台机器上,易于访问数据,但无扩展性。 - **两层(胖客户端)**: 客户端与服务器分离,部分功能拆分,但仍有业务逻辑在数据层。 - **三层**: 客户端、业务逻辑和数据层完全分离,实现瘦客户端,可扩展性强,但管理复杂。 - **n层**: 更灵活的架构,允许异种平台交互,但安全性较弱。 - **Web服务**: 采用Web服务进行跨平台通信,HTTP穿透防火墙,但安全性低。 **ADO.NET核心组件** - **DataProviders**: 如`SqlClient`,为不同数据源提供访问接口。 - **Connection**: 管理数据库连接。 - **Command**: 执行SQL命令。 - **DataReader**: 实时读取数据库数据,适合大量数据流式读取。 - **DataSet/DataTable/DataView**: 支持离线操作和数据绑定,适合小规模数据处理。 **总结** 本教程详细阐述了C#中使用DataSet和DataReader进行数据库访问的方法,以及数据访问层次结构的概念,有助于开发者理解和选择合适的数据访问策略。同时,介绍了ADO.NET作为.NET框架下强大的数据访问工具,提供了高效且灵活的数据操作手段。