跳到主要内容

C# ADO.NET 基础

ADO.NET 是 .NET 框架中用于访问和操作数据库的一组类库。它为 C# 开发者提供了强大的工具,能够轻松连接数据库、执行 SQL 查询、读取和更新数据。本文将带你从零开始学习 ADO.NET 的基础知识,并通过实际案例帮助你理解其应用场景。

什么是 ADO.NET?

ADO.NET 是 ActiveX Data Objects for .NET 的缩写,它是 .NET 框架中用于数据访问的核心技术。ADO.NET 提供了一种统一的方式来访问各种数据源,包括关系型数据库(如 SQL Server、MySQL)和非关系型数据源(如 XML 文件)。

ADO.NET 的核心组件包括:

  • Connection:用于建立与数据库的连接。
  • Command:用于执行 SQL 语句或存储过程。
  • DataReader:用于从数据库中读取只进、只读的数据流。
  • DataAdapter:用于在数据库和 DataSet 之间传递数据。
  • DataSet:用于在内存中存储和操作数据。

连接数据库

在 ADO.NET 中,首先需要建立与数据库的连接。我们可以使用 SqlConnection 类来连接 SQL Server 数据库。

csharp
using System.Data.SqlClient;

string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
Console.WriteLine("连接成功!");
}
备注

确保在连接字符串中提供正确的服务器地址、数据库名称、用户名和密码。

执行 SQL 查询

连接数据库后,可以使用 SqlCommand 类来执行 SQL 查询。以下是一个简单的示例,展示如何从数据库中读取数据。

csharp
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "SELECT * FROM Customers";
using (SqlCommand command = new SqlCommand(query, connection))
{
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine($"ID: {reader["CustomerID"]}, Name: {reader["CompanyName"]}");
}
}
}
}
提示

SqlDataReader 提供了高效的数据读取方式,适合处理大量数据。

使用 DataAdapter 和 DataSet

DataAdapterDataSet 是 ADO.NET 中用于处理离线数据的强大工具。DataAdapter 用于填充 DataSet,而 DataSet 则可以在内存中存储和操作数据。

csharp
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "SELECT * FROM Customers";
using (SqlDataAdapter adapter = new SqlDataAdapter(query, connection))
{
DataSet dataSet = new DataSet();
adapter.Fill(dataSet, "Customers");

foreach (DataRow row in dataSet.Tables["Customers"].Rows)
{
Console.WriteLine($"ID: {row["CustomerID"]}, Name: {row["CompanyName"]}");
}
}
}
警告

DataSet 适合处理小型数据集,对于大型数据集,建议使用 SqlDataReader 以提高性能。

实际案例:用户管理系统

假设我们正在开发一个简单的用户管理系统,需要从数据库中读取用户信息并显示在控制台上。以下是实现该功能的代码示例:

csharp
using System;
using System.Data.SqlClient;

class Program
{
static void Main()
{
string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string query = "SELECT * FROM Users";
using (SqlCommand command = new SqlCommand(query, connection))
{
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine($"UserID: {reader["UserID"]}, Username: {reader["Username"]}, Email: {reader["Email"]}");
}
}
}
}
}
}

总结

通过本文,你已经学习了 ADO.NET 的基础知识,包括如何连接数据库、执行 SQL 查询以及使用 DataAdapterDataSet 处理数据。ADO.NET 是 C# 数据库编程的核心技术,掌握它将为你在开发数据库驱动的应用程序时提供强大的支持。

附加资源与练习

继续深入学习 ADO.NET 的高级特性,如事务处理、存储过程和参数化查询,以进一步提升你的数据库编程技能。