当前位置:首页 > 技术教程 > 正文

ASP.NET如何连接SQL数据库?详解连接步骤与配置方法

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


方式1:使用ADO.NET(基础方法)

步骤:

  1. 添加连接字符串到Web.config

    <configuration> <connectionStrings> <add name="MyDbConnection" connectionString="Server=服务器地址;Database=数据库名;User Id=用户名;Password=密码;" providerName="System.Data.SqlClient"/> </connectionStrings> </configuration>
  2. 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(推荐)

步骤:

  1. 安装NuGet包

    • Microsoft.EntityFrameworkCore.SqlServer
    • Microsoft.EntityFrameworkCore.Design(用于迁移)
  2. 创建数据模型

    ASP.NET如何连接SQL数据库?详解连接步骤与配置方法 第1张

    public class User { public int Id { get; set; } public string Name { get; set; } }
  3. 创建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=密码;"); } }

  4. 在控制器中使用数据库

    ASP.NET如何连接SQL数据库?详解连接步骤与配置方法 第2张

    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); } }
  5. 配置依赖载入(在Program.cs中)

    var builder = WebApplication.CreateBuilder(args); builder.Services.AddDbContext<AppDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
  6. 关键注意事项:

    1. 安全性

      • 不要在代码中硬编码连接字符串,始终使用Web.config或appsettings.json。
      • 使用集成身份验证(Windows验证)更安全: connectionString="Server=.;Database=MyDB;Integrated Security=True;"
    2. 异常处理

      try { // 数据库操作 } catch (SqlException ex) { // 处理数据库异常 }
    3. 连接池优化

      ASP.NET如何连接SQL数据库?详解连接步骤与配置方法 第3张

      • ADO.NET默认启用连接池,使用using确保连接及时释放。
      • 简化开发技巧:

        • 脚手架生成

          使用Visual Studio的ADO.NET实体数据模型向导自动生成DbContext和模型类。

        • 异步操作

          使用ExecuteReaderAsync()或EF Core的ToListAsync()提升性能。 var users = await _context.Users.ToListAsync();


        示例:完整ASP.NET Core流程

        1. appsettings.json配置

          { "ConnectionStrings": { "DefaultConnection": "Server=.;Database=MyAppDb;Integrated Security=True;" } }
        2. Program.cs载入服务

          builder.Services.AddDbContext<AppDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
        3. 通过依赖载入使用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

          根据项目需求灵活选用!

0