SqlConnection
类并指定连接字符串来建立连接;而Entity Framework则提供了更高级的ORM功能,简化数据操作。
在C#中连接本地数据库是一个常见的任务,主要涉及到使用ADO.NET或Entity Framework等技术,以下是详细的步骤和示例代码:
确保你已经安装了以下工具和组件:
Visual Studio 2022 或更高版本
.NET SDK 6.0 或更高版本
SQL Server(或其他支持的数据库)
你需要有一个本地数据库,这里以SQL Server为例,你可以使用SQL Server Management Studio (SSMS) 来创建一个数据库,假设我们创建一个名为TestDB
的数据库,并在其中创建一个表Users
:
CREATE DATABASE TestDB; GO USE TestDB; GO CREATE TABLE Users ( Id INT PRIMARY KEY IDENTITY(1,1), Name NVARCHAR(50), Email NVARCHAR(50) ); GO INSERT INTO Users (Name, Email) VALUES ('John Doe', 'john@example.com'); GO
在C#项目中,你需要配置数据库连接字符串,你可以在appsettings.json
文件中添加如下内容:
{ "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\mssqllocaldb;Database=TestDB;Trusted_Connection=True;MultipleActiveResultSets=true" } }
在你的C#文件中,引入以下命名空间:
using System; using System.Data; using System.Data.SqlClient;
下面是一个简单的示例,展示如何使用ADO.NET连接到本地数据库并执行查询:
class Program { static void Main() { string connectionString = "Server=(localdb)\mssqllocaldb;Database=TestDB;Trusted_Connection=True;MultipleActiveResultSets=true"; 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($"Id: {reader["Id"]}, Name: {reader["Name"]}, Email: {reader["Email"]}"); } } } } } }
5. 使用Entity Framework连接数据库
Entity Framework提供了更高级的ORM功能,使得数据访问更加简洁和高效。
使用NuGet包管理器安装Microsoft.EntityFrameworkCore包:
Install-Package Microsoft.EntityFrameworkCore
创建一个类来表示数据库中的表:
public class User { public int Id { get; set; } public string Name { get; set; } public string Email { get; set; } }
创建一个继承自DbContext
的类:
public class AppDbContext : DbContext { public DbSet<User> Users { get; set; } public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { } }
在Program.cs
文件中配置数据库连接:
class Program { static void Main() { var optionsBuilder = new DbContextOptionsBuilder<AppDbContext>(); optionsBuilder.UseSqlServer("Server=(localdb)\mssqllocaldb;Database=TestDB;Trusted_Connection=True;MultipleActiveResultSets=true"); using (var context = new AppDbContext(optionsBuilder.Options)) { // 查询数据 var users = context.Users.ToList(); foreach (var user in users) { Console.WriteLine($"Id: {user.Id}, Name: {user.Name}, Email: {user.Email}"); } } } }
介绍了两种在C#中连接本地数据库的方法:使用ADO.NET和使用Entity Framework,选择哪种方法取决于你的具体需求和项目规模,对于简单的数据库操作,ADO.NET已经足够;而对于复杂的数据模型和业务逻辑,Entity Framework可能是更好的选择。