C#中如何使用DataAdapter和DataSet填充数据?示例代码是什么?

来源:这里教程网 时间:2026-02-21 17:28:24 作者:

在C#中,DataAdapterDataSet 常用于从数据库读取数据并进行离线操作。DataAdapter 充当数据库和 DataSet 之间的桥梁,通过 Fill 方法将查询结果填充到 DataSet 中。

基本流程说明

使用 SqlDataAdapter(以 SQL Server 为例)执行 SELECT 命令,把数据填充到 DataSet 的 DataTable 中。DataSet 可包含多个表,适合处理多表查询或关联数据。

示例代码:使用 SqlDataAdapter 和 DataSet

以下是一个完整的控制台应用程序示例,展示如何连接 SQL Server 数据库并填充数据:

var connectionString = "Server=localhost;Database=TestDB;User Id=sa;Password=your_password;"; var query = "SELECT Id, Name, Email FROM Users"; using (var connection = new SqlConnection(connectionString)) { using (var adapter = new SqlDataAdapter(query, connection)) { var dataSet = new DataSet(); adapter.Fill(dataSet, "Users"); // 遍历数据 foreach (DataRow row in dataSet.Tables["Users"].Rows) { Console.WriteLine($"ID: {row["Id"]}, Name: {row["Name"]}, Email: {row["Email"]}"); } } }

关键点说明

SqlConnection 负责数据库连接,由 SqlDataAdapter 内部管理打开和关闭。 SqlDataAdapter 可设置 SelectCommand,也可直接传入 SQL 字符串和连接对象。 Fill() 方法执行查询并将结果写入 DataSet 的指定表名中。 DataSet 是内存中的数据容器,支持多表、关系和约束。 即使连接关闭,DataSet 仍可访问数据,适用于断开式数据操作。

补充:更新数据回数据库

如果需要将修改后的 DataSet 数据写回数据库,需配置 InsertCommand、UpdateCommand 和 DeleteCommand: var updateCommand = new SqlCommand("UPDATE Users SET Name=@Name, Email=@Email WHERE Id=@Id", connection); updateCommand.Parameters.Add("@Name", SqlDbType.NVarChar, 50, "Name"); updateCommand.Parameters.Add("@Email", SqlDbType.NVarChar, 100, "Email"); updateCommand.Parameters.Add("@Id", SqlDbType.Int, 4, "Id"); adapter.UpdateCommand = updateCommand; adapter.Update(dataSet, "Users"); // 将 DataSet 中的变更提交到数据库 基本上就这些。DataAdapter + DataSet 虽然较老,但在需要缓存、批量操作或离线处理时依然实用。

相关推荐