ASP.NET如何连接数据库文件?详细步骤与SqlConnection对象使用指南
- 技术教程
- 2026-02-08
- 3315
在ASP.NET中访问数据库文件,通常涉及以下步骤,这里以常见的SQL Server数据库文件(.mdf)和SQLite数据库文件(.db)为例,分别说明访问方法:
访问SQL Server数据库文件 (.mdf)
配置连接字符串
在Web.config文件中添加连接字符串(使用LocalDB或SQL Server Express):
<connectionStrings> <add name="MyDBContext" connectionString="Data Source=(LocalDB)MSSQLLocalDB;AttachDbFilename=|DataDirectory|MyDatabase.mdf;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings>
- |DataDirectory| 表示项目中的App_Data文件夹。
使用ADO.NET访问数据库
using System.Data.SqlClient; using System.Configuration; public void ReadData() { string connectionString = ConfigurationManager.ConnectionStrings["MyDBContext"].ConnectionString; using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); string sql = "SELECT * FROM Users"; SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { string name = reader["UserName"].ToString(); // 处理数据... } } }
使用Entity Framework Core(推荐)
-
安装NuGet包:Microsoft.EntityFrameworkCore.SqlServer
-
创建DbContext类:
public class AppDbContext : DbContext { public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { } public DbSet<User> Users { get; set; } } -
在Startup.cs中注册:
public void ConfigureServices(IServiceCollection services) { services.AddDbContext<AppDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("MyDBContext"))); } -
在Controller中使用:

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); } }
- 安装NuGet包:Microsoft.EntityFrameworkCore.Sqlite
- 配置DbContext: public class AppDbContext : DbContext { public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { } public DbSet<Product> Products { get; set; } }
- 在Startup.cs中注册: public void ConfigureServices(IServiceCollection services) { services.AddDbContext<AppDbContext>(options => options.UseSqlite(Configuration.GetConnectionString("SQLiteDB"))); }
-
文件权限
- 确保App_Data文件夹有读写权限(IIS或开发服务器需有权限修改文件)。
-
数据库文件位置
- 始终将数据库文件放在App_Data文件夹中(ASP.NET对该文件夹有特殊保护)。
-
连接字符串技巧
- 使用|DataDirectory|代替绝对路径,避免部署问题。
- 示例:AttachDbFilename=|DataDirectory|data.mdf
-
部署问题

- 生产环境中,SQL Server建议使用完整版而非.mdf文件(性能更好)。
- SQLite适合轻量级应用,但并发写入性能有限。
-
安全建议
- 不要硬编码连接字符串。
- 敏感信息(如密码)使用aspnet_regiis加密或Azure Key Vault。
-
Microsoft Access (.mdb/.accdb)
使用OLE DB连接:
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|db.accdb;" -
MySQL (.frm + 数据文件)
使用NuGet包MySql.Data.EntityFrameworkCore,连接字符串:
"server=localhost;database=mydb;user=root;password=12345"
其他数据库类型
通过以上步骤,你可以灵活地在ASP.NET中操作各种数据库文件,推荐使用Entity Framework Core,它能大幅简化数据库操作并支持跨平台部署。
访问SQLite数据库文件 (.db)
配置连接字符串
在Web.config中添加:

安装SQLite NuGet包
Install-Package System.Data.SQLite
使用ADO.NET访问SQLite
using System.Data.SQLite; public void ReadSQLiteData() { string connectionString = ConfigurationManager.ConnectionStrings["SQLiteDB"].ConnectionString; using (SQLiteConnection conn = new SQLiteConnection(connectionString)) { conn.Open(); string sql = "SELECT * FROM Products"; SQLiteCommand cmd = new SQLiteCommand(sql, conn); SQLiteDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { string productName = reader["ProductName"].ToString(); // 处理数据... } } }
使用Entity Framework Core + SQLite
关键注意事项