在ASP.NET中连接SQL数据库,主要有两种常用方式:ADO.NET(直接使用数据库连接)和Entity Framework(ORM框架),以下是详细步骤和示例:

方式1:使用ADO.NET(基础方法)
步骤:
-
添加连接字符串到Web.config
<configuration> <connectionStrings> <add name="MyDbConnection" connectionString="Server=服务器地址;Database=数据库名;User Id=用户名;Password=密码;" providerName="System.Data.SqlClient"/> </connectionStrings> </configuration> -
C#代码中连接数据库
using System.Data.SqlClient; using System.Configuration; public void GetData() { // 从Web.config获取连接字符串 string connString = ConfigurationManager.ConnectionStrings["MyDbConnection"].ConnectionString; using (SqlConnection conn = new SqlConnection(connString)) { conn.Open(); string sql = "SELECT * FROM Users"; SqlCommand cmd = new SqlCommand(sql, conn); // 读取数据 SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { string name = reader["Name"].ToString(); // 处理数据... } } }
方式2:使用Entity Framework Core(推荐)
步骤:
-
安装NuGet包
Microsoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.Design(用于迁移)
-
创建数据模型
public class User { public int Id { get; set; } public string Name { get; set; } } -
创建DbContext类

using Microsoft.EntityFrameworkCore; public class AppDbContext : DbContext { public DbSet<User> Users { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer("Server=服务器;Database=数据库;User Id=用户;Password=密码;"); } } -
在控制器中使用数据库
public class UserController : Controller { private readonly AppDbContext _context; public UserController(AppDbContext context) { _context = context; } public IActionResult Index() { var users = _context.Users.ToList(); // 获取所有用户 return View(users); } } -
配置依赖注入(在Program.cs中)
var builder = WebApplication.CreateBuilder(args); builder.Services.AddDbContext<AppDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
关键注意事项:
-
安全性
- 不要在代码中硬编码连接字符串,始终使用
Web.config或appsettings.json。 - 使用集成身份验证(Windows验证)更安全:
connectionString="Server=.;Database=MyDB;Integrated Security=True;"
- 不要在代码中硬编码连接字符串,始终使用
-
异常处理
try { // 数据库操作 } catch (SqlException ex) { // 处理数据库异常 } -
连接池优化

- ADO.NET默认启用连接池,使用
using确保连接及时释放。
- ADO.NET默认启用连接池,使用
简化开发技巧:
- 脚手架生成:
使用Visual Studio的ADO.NET实体数据模型向导自动生成DbContext和模型类。 - 异步操作:
使用ExecuteReaderAsync()或EF Core的ToListAsync()提升性能。var users = await _context.Users.ToListAsync();
示例:完整ASP.NET Core流程
-
appsettings.json配置
{ "ConnectionStrings": { "DefaultConnection": "Server=.;Database=MyAppDb;Integrated Security=True;" } } -
Program.cs注入服务
builder.Services.AddDbContext<AppDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"))); -
通过依赖注入使用DbContext
public class UserService { private readonly AppDbContext _db; public UserService(AppDbContext db) => _db = db; public void AddUser(string name) { _db.Users.Add(new User { Name = name }); _db.SaveChanges(); } }
选择方法:
- 需要直接控制SQL → ADO.NET
- 快速开发/维护 → Entity Framework Core
根据项目需求灵活选用!
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/289354.html

