.NET Core DataAdapter查SqlServer
引言
在开发.NET Core应用程序时,我们经常需要与数据库进行交互。为了方便和高效地访问数据库,ADO.NET提供了一个重要的组件——DataAdapter。DataAdapter作为一个桥梁,连接了数据源和数据集,提供了在应用程序和数据库之间传递数据的功能。
本文将介绍如何使用.NET Core DataAdapter来访问和操作SqlServer数据库。我们将讨论DataAdapter的基本概念、使用方法和示例代码,并通过序列图和饼状图来说明DataAdapter的工作原理和应用场景。
DataAdapter基本概念
DataAdapter是ADO.NET的核心组件之一,它被用于填充和更新数据集。DataAdapter提供了一系列方法和属性,用于执行数据库操作,如查询、插入、更新和删除。DataAdapter可以与CommandBuilder一起使用,自动生成插入、更新和删除的SQL语句。
DataAdapter的主要功能包括:
- 填充数据集:通过执行查询语句,将数据库中的数据填充到DataSet或DataTable中。
- 更新数据源:将对数据集所做的更改反映到数据库中。
- 执行命令:执行针对数据库的查询、插入、更新和删除操作。
DataAdapter通常与数据库连接(Connection)、命令(Command)和数据集(DataSet)一起使用。它充当了连接数据库和操作数据的桥梁,提供了一种高效、灵活和可扩展的方式来访问和操作数据库。
使用DataAdapter查SqlServer数据库
首先,我们需要安装必要的NuGet包,以便在.NET Core应用程序中使用DataAdapter。打开Visual Studio的NuGet包管理器控制台,执行以下命令安装相关包:
Install-Package System.Data.SqlClient
安装完成后,我们可以在代码中引入System.Data.SqlClient
命名空间,开始使用DataAdapter来访问SqlServer数据库。
1. 填充数据集
使用DataAdapter填充数据集是一种常见的操作,它通常用于从数据库中检索数据并将其存储在内存中,以便在应用程序中进行操作。
以下是使用DataAdapter填充数据集的示例代码:
using System;
using System.Data;
using System.Data.SqlClient;
namespace DataAdapterDemo
{
class Program
{
static void Main(string[] args)
{
string connectionString = "server=127.0.0.1;database=TestDB;uid=sa;pwd=123456";
string query = "SELECT * FROM Customers";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlDataAdapter adapter = new SqlDataAdapter(query, connection);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet, "Customers");
DataTable customersTable = dataSet.Tables["Customers"];
foreach (DataRow row in customersTable.Rows)
{
Console.WriteLine(row["CustomerName"]);
}
}
}
}
}
在上述代码中,我们首先创建了一个SqlConnection
对象,用于连接到数据库。然后,创建了一个SqlDataAdapter
对象,并通过构造函数传入查询语句和连接对象。接下来,创建了一个DataSet
对象,用于存储从数据库中检索到的数据。最后,调用Fill
方法将数据填充到DataSet中,并通过表名获取到对应的DataTable,通过遍历DataTable的行来访问数据。
2. 更新数据源
DataAdapter不仅可以填充数据集,还可以将对数据集的更改反映到数据库中,实现数据的更新操作。
以下是使用DataAdapter更新数据源的示例代码:
using System;
using System.Data;
using System.Data.SqlClient;
namespace DataAdapterDemo
{
class Program
{
static void Main(string[] args)
{
string connectionString = "server=127.0.0.1;database=TestDB;uid=sa;pwd=123456";
string query = "SELECT * FROM Customers";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlDataAdapter adapter = new SqlDataAdapter(query, connection);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet, "Customers");
DataTable customersTable = dataSet.Tables["Customers"];
// 修改数据
DataRow firstRow = customersTable.Rows[0];
firstRow["CustomerName"] = "New Customer Name";
// 更新数据源
SqlCommandBuilder commandBuilder = new SqlCommandBuilder(adapter);
adapter.Update(dataSet, "Customers");