VS 2022中ASP.NET Core 7 MVC如何连接MS Access数据库?
在ASP.NET Core 7 MVC中连接MS Access数据库
步骤1:安装OLE DB驱动包
ASP.NET Core没有内置MS Access的连接驱动,需先安装官方的Microsoft.Data.OleDb NuGet包:
- 通过NuGet包管理器搜索并安装
Microsoft.Data.OleDb - 或使用.NET CLI命令:
dotnet add package Microsoft.Data.OleDb
步骤2:修改appsettings.json的连接字符串
替换原有SQL Server的连接配置,根据你的Access数据库格式设置对应字符串:
- 针对
.accdb格式(新版Access):"AllowedHosts": "*", "ConnectionStrings": { "AccessContext": "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\YourPath\\YourDatabase.accdb;" } - 针对
.mdb格式(旧版Access):"AllowedHosts": "*", "ConnectionStrings": { "AccessContext": "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\YourPath\\YourDatabase.mdb;" }
注意:路径需使用双反斜杠
\\或正斜杠/,确保指向数据库文件的正确位置。
步骤3:配置DbContext使用OleDb连接
如果使用EF Core,按以下方式配置DbContext以接入Access数据库:
方式1:在Program.cs中注册DbContext(推荐)
var builder = WebApplication.CreateBuilder(args); // 注册Access DbContext builder.Services.AddDbContext<AccessContext>(options => options.UseOleDb(builder.Configuration.GetConnectionString("AccessContext"))); // 其他服务配置... var app = builder.Build(); // 中间件配置... app.Run();
方式2:在DbContext的OnConfiguring方法中配置
using Microsoft.EntityFrameworkCore; using Microsoft.Data.OleDb; using System.Configuration; public class AccessContext : DbContext { public AccessContext() { } public AccessContext(DbContextOptions<AccessContext> options) : base(options) { } // 定义你的实体集合,例如: // public DbSet<Product> Products { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (!optionsBuilder.IsConfigured) { var connString = ConfigurationManager.ConnectionStrings["AccessContext"].ConnectionString; optionsBuilder.UseOleDb(connString); } } }
关于Connected Services无Access选项的说明
Visual Studio的Connected Services并未内置MS Access的可视化连接模板,这是因为Access并非微软主推的现代数据库解决方案。无需依赖Connected Services,按照上述手动配置即可完成数据库连接。
内容的提问来源于stack exchange,提问作者JoAnn Donaldson
相关产品推荐
相关产品推荐

