ASP.NET如何配置数据库?详细步骤图文教程

在 ASP.NET 中配置数据库连接主要涉及以下步骤(以 SQL Server 为例,其他数据库类似):

asp.net怎么配置数据库

配置连接字符串

  1. appsettings.json 中添加连接字符串

    {
      "ConnectionStrings": {
        "DefaultConnection": "Server=你的服务器地址;Database=你的数据库名;User Id=用户名;Password=密码;"
        // 示例(本地 SQL Server):
        // "DefaultConnection": "Server=(localdb)\mssqllocaldb;Database=MyDB;Trusted_Connection=True;"
      }
    }
  2. 支持的数据库类型

    • SQL Server:Server=.;Database=MyDB;Integrated Security=True;
    • MySQL:Server=localhost;Database=MyDB;Uid=root;Pwd=123456;
    • SQLite:Data Source=MyDatabase.db;
    • PostgreSQL:Host=localhost;Database=MyDB;Username=postgres;Password=123456;

注入数据库上下文(以 Entity Framework Core 为例)

  1. 安装 NuGet 包

    • SQL Server: Microsoft.EntityFrameworkCore.SqlServer
    • MySQL: Pomelo.EntityFrameworkCore.MySql
    • SQLite: Microsoft.EntityFrameworkCore.Sqlite
  2. Program.cs 中注册 DbContext

    var builder = WebApplication.CreateBuilder(args);
    // 添加数据库上下文(根据数据库类型选择)
    builder.Services.AddDbContext<AppDbContext>(options =>
    {
        // SQL Server
        options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"));
        // MySQL(使用 Pomelo 驱动)
        // options.UseMySql(builder.Configuration.GetConnectionString("DefaultConnection"), ServerVersion.AutoDetect(...));
        // SQLite
        // options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection"));
    });

创建 DbContext 类

public class AppDbContext : DbContext
{
    public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
    // 定义数据表
    public DbSet<User> Users { get; set; }
}
// 实体类示例
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
}

数据库迁移(Code First)

  1. 安装 EF Core 工具

    asp.net怎么配置数据库

    dotnet tool install --global dotnet-ef
  2. 创建迁移

    dotnet ef migrations add InitialCreate
  3. 更新数据库

    dotnet ef database update

在控制器中使用数据库

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);
    }
}

不使用 EF Core 的原始 ADO.NET 连接

using System.Data.SqlClient;
public class UserRepository
{
    private readonly IConfiguration _config;
    public UserRepository(IConfiguration config)
    {
        _config = config;
    }
    public List<User> GetUsers()
    {
        var connectionString = _config.GetConnectionString("DefaultConnection");
        using (var connection = new SqlConnection(connectionString))
        {
            connection.Open();
            var command = new SqlCommand("SELECT * FROM Users", connection);
            var reader = command.ExecuteReader();
            var users = new List<User>();
            while (reader.Read())
            {
                users.Add(new User {
                    Id = (int)reader["Id"],
                    Name = (string)reader["Name"]
                });
            }
            return users;
        }
    }
}

安全注意事项

  1. 生产环境连接字符串

    • 使用环境变量或密钥管理服务(如 Azure Key Vault)
    • 在 Azure App Service 中通过“配置”>“连接字符串”设置
  2. 敏感信息保护

    # 使用 .NET 用户机密(开发环境)
    dotnet user-secrets set "ConnectionStrings:DefaultConnection" "你的连接字符串"

常见问题排查

  1. 连接失败

    asp.net怎么配置数据库

    • 检查服务器是否可访问
    • 验证用户名/密码是否正确
    • 检查防火墙设置
  2. 迁移错误

    • 确保 DbContext 已注入
    • 检查实体类与数据库表的映射

提示:对于不同数据库,只需替换连接字符串和对应的 EF Core 提供程序(UseSqlServer/UseMySql/UseSqlite),其他代码结构保持一致。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/288565.html

(0)
上一篇 2026年2月9日 01:02
下一篇 2026年2月9日 01:08

相关推荐

  • 个体户云原生生态,个体户能用云原生吗

    个体户在2026年通过云原生生态实现降本增效的核心结论是:利用Serverless架构与AI Agent自动化组合,可将IT运维成本降低70%以上,同时实现业务系统的弹性伸缩与智能决策,这是个体经营者从“手工劳作”向“数字资产运营”转型的唯一高效路径, 云原生生态重构个体户经营逻辑在2026年的商业环境中,云原……

    2026年5月18日
    0842
  • 云南通信电缆线多少钱一米,云南通信电缆线

    供应云南各种规格通信电缆线,建议优先选择符合GB/T 13993.4及YD/T 901-2026最新国标、具备阻燃低烟无卤特性的室外架空或管道敷设线缆,以确保在高原复杂气候下的长期信号稳定性,云南通信电缆选型核心逻辑与规格解析云南地形复杂,涵盖高海拔山区、热带雨林及干热河谷,这对通信电缆的耐候性、抗紫外线及机械……

    2026年5月20日
    0941
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 我服务器开启了CDN,这究竟意味着什么?对网站速度和性能有何影响?

    随着互联网技术的不断发展,网站的速度和稳定性成为了衡量其用户体验的重要标准,CDN(内容分发网络)作为一种提升网站访问速度和稳定性的技术,越来越受到重视,当您听说“我服务器开启了CDN”时,这究竟意味着什么呢?以下是对这一概念的具体解析,什么是CDN?定义分发网络(Content Delivery Networ……

    2025年10月31日
    02820
  • 佳能lbp623cdn打印机频繁卡纸不走纸怎么办?

    佳能LBP623cdn作为一款性能稳定的彩色激光打印机,深受办公用户的青睐,即使是再可靠的设备,也难免会遇到卡纸这一常见问题,卡纸不仅会中断工作,处理不当还可能对打印机造成损伤,本文将为您提供一份详尽、结构清晰的佳能LBP623cdn打印机卡纸解决方法,帮助您快速、安全地恢复打印机的正常工作,第一步:立即停止操……

    2025年10月21日
    06530

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注