ADO.NET教程:使用DataSet从C#数据库读取数据

需积分: 3 1 下载量 112 浏览量 更新于2024-08-19 收藏 374KB PPT 举报
"使用数据集从数据库中读取数据是ADO.NET框架中的一种常见操作,涉及的关键对象包括数据连接(Connection)、数据适配器(DataAdapter)和数据集(DataSet)。ADO.NET是微软提供的用于数据库访问的技术,它允许应用程序高效地与各种数据库进行交互。" 在ADO.NET中,首先需要创建一个数据连接对象,例如使用`SqlConnection`类来连接SQL Server数据库。连接数据库通常需要一个连接字符串,其中包含了数据库服务器的位置、数据库名称、用户名和密码等信息。例如: ```csharp string connString = "DataSource=.;InitialCatalog=MySchool;UserID=sa"; SqlConnection connection = new SqlConnection(connString); ``` 这段代码创建了一个连接到本地数据库"MySchool"的连接,并使用用户"sa"进行身份验证。然后通过调用`Open()`方法打开连接,确保可以与数据库进行通信。 ```csharp connection.Open(); ``` 当完成数据库操作后,需要调用`Close()`方法关闭连接,释放系统资源。 ```csharp connection.Close(); ``` 在读取数据时,ADO.NET中的`SqlDataAdapter`扮演了重要角色。它是一个桥梁,负责在数据库和内存中的数据集之间交换数据。`SqlDataAdapter`创建一个SQL查询,然后使用这个查询来填充数据集。例如: ```csharp SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter("select * from customers", mySqlConnection); DataSet myDataSet = new DataSet(); mySqlDataAdapter.Fill(myDataSet, "Customers"); ``` 这段代码创建了一个`SqlDataAdapter`,用于执行SQL查询(选择"customers"表的所有列),并将结果填充到一个新的`DataSet`对象中。`Fill()`方法接收两个参数:要填充的数据集和数据表的名称。 `DataSet`是一个在内存中的数据容器,可以包含多个`DataTable`,每个`DataTable`代表数据库中的一个表。在这里,我们使用`Fill()`方法将查询结果存储在名为"Customers"的`DataTable`中。 `DataReader`是另一种从数据库读取数据的方式,它提供了一种只进、不可滚动的流式数据访问,适合处理大量数据,但不适用于需要在内存中持久化数据的情况。 总结来说,使用ADO.NET进行数据访问主要包括以下步骤: 1. 创建数据连接对象(如`SqlConnection`)。 2. 使用连接字符串打开数据库连接。 3. 创建数据适配器对象(如`SqlDataAdapter`),指定SQL查询。 4. 创建数据集(`DataSet`)和数据表(`DataTable`)。 5. 使用数据适配器填充数据集。 6. 在操作完成后,关闭数据库连接。 这些步骤确保了应用程序能够有效地从数据库中获取并处理数据。在C#中,使用`using`语句可以更安全地管理数据库连接,因为即使发生异常,也会确保连接被正确关闭。例如: ```csharp using (SqlConnection connection = new SqlConnection(connString)) { connection.Open(); // 数据操作代码... } ``` 这确保了即使在`using`块内的代码抛出异常,`Dispose()`方法也会被调用,从而关闭数据库连接。