【发布时间】:2021-02-08 18:31:14
【问题描述】:
我有一个 C# 应用程序,它连接到在 SQL Server Express 上运行的本地数据库。应用程序应生成表。
我的 appsettings.json 中有以下内容:
"ConnectionStrings": {
"VHDatabase": "Server=(localDb)\\SQLEXPRESS;AttachDbFilename=C:\\Program Files\\Microsoft SQL Server\\MSSQL15.SQLEXPRESS\\MSSQL\\DATA\\VHDatabase.mdf;Database=VHDatabase;Trusted_Connection=True;MultipleActiveResultSets=true;Integrated Security=true;User Instance=true;"
}
在我的 startup.cs 中通过此连接完成:
var connection = Configuration.GetConnectionString("VRHitDatabase");
services.AddDbContext<VHContext>
(options => options.UseSqlServer(connection));
当我运行应用程序时,没有创建任何表,并且我看不到任何存在连接的证据。有什么办法可以做到这一点,或者至少确认我的连接字符串是正确的??
【问题讨论】:
-
字符串不匹配 - appsettings 中的
VHDatabase与 startup.cs 中的VRHitDatabase -
你不应该在同一个连接字符串中同时使用 Server 和 AttachDb。 AttachDb 意味着当您没有服务器并且仅读取 uisng 一个 MDF 文件时。当 MDF 文件已附加到数据库时,在连接字符串中使用一个服务器。您的连接字符串具有“Integrated Security=true”,这意味着您正在使用 Windows 凭据。我会使用 SQL Server Management Studio 来测试您的连接。在登录页面上使用 Windows 凭据并检查您是否可以连接到服务器。登录后使用资源管理器并验证数据库 VHDatabase 是否被列为数据库之一。
标签: c# .net sql-server database