C# 为什么即使我更改了连接字符串中的数据库名称,asp.net core mvc仍连接到同一个数据库?
我使用SQL Server Management Studio将名为“aspnet-SimpleBank-C2FC2762-4DD0-4E9A-90C2-c876aa5348c”的数据库导出为SimpleBankDatabase.bacpac。然后将SimpleBankDatabase.bacpac作为SimpleBank导入数据库。我将应用程序中的连接字符串更改为连接到SimpleBank,但应用程序仍然连接到旧的连接字符串,因为我试图通过应用程序将一些数据添加到数据库中 我尝试将“SimpleBank”复制到存储“aspnet-SimpleBank-C2FC2762-4DD0-4E9A-90C2-c876aa5348c”的文件夹中,但它仍然不起作用C# 为什么即使我更改了连接字符串中的数据库名称,asp.net core mvc仍连接到同一个数据库?,c#,json,asp.net-core,.net-core,asp.net-core-mvc,C#,Json,Asp.net Core,.net Core,Asp.net Core Mvc,我使用SQL Server Management Studio将名为“aspnet-SimpleBank-C2FC2762-4DD0-4E9A-90C2-c876aa5348c”的数据库导出为SimpleBankDatabase.bacpac。然后将SimpleBankDatabase.bacpac作为SimpleBank导入数据库。我将应用程序中的连接字符串更改为连接到SimpleBank,但应用程序仍然连接到旧的连接字符串,因为我试图通过应用程序将一些数据添加到数据库中 我尝试将“Simpl
The first connection string is commented.
{
"ConnectionStrings": {
//"DefaultConnection": "Server=
(localdb)\\mssqllocaldb;Database=
aspnet-SimpleBank-C2FC2762-4DD0-4E9A-90C2- C876AA53348C;
Trusted_Connection=True;MultipleActiveResultSets=true"
"DefaultConnection": "Server=
(localdb)\\mssqllocaldb;Database=SimpleBank;
Trusted_Connection=True;
MultipleActiveResultSets=true"
},
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"AllowedHosts": "*"
}
数据库名称完全不同,但应用程序仍连接到旧数据库。我认为这里的问题是您在这一行中使用的是
localdb
(localdb)\\mssqllocaldb
因此,如果您让sql server更改您的sql server地址以连接到数据库。简单的一点是,如果您将连接字符串更改为其他数据库,并且如果该字符串写入正确,它肯定会工作(即使它是错误的,也会引发异常)。考虑到您已经正确地注释了第一个连接字符串(您的帖子中没有正确显示),我建议检查以下内容
ConfigureServices
方法(或读取连接字符串的位置),并在那里放置调试点以获取工作连接字符串环境
特定的appsetting
文件,并且连接字符串被写入其中,那么您也会忘记更改哪些内容JSON没有注释。删除该行,不要试图注释掉它。如果这是默认生成的数据库,我假设解析设置失败,并创建了默认连接字符串。我安装了MS SQL Server 2017 Express,并将服务器名称更改为Server=localhost\\SQLEXPRESS。它仍然连接到localdb上的旧数据库。应用程序的行为很奇怪。只有连接字符串中导入的数据库名称才允许应用程序连接到旧数据库。我认为您可以删除bin和obj文件夹以清理缓存我刚刚删除了bind和obj文件夹,但它仍然连接到旧数据库。有没有办法将Visual Studio配置为不使用LocalDB?我记得我曾经在某个地方看到过它,但我再也找不到了。您在项目中使用了用户机密吗?没有,但我使用asp.net核心mvc模板的单个用户帐户。注册用户时会自动创建数据库。我会选中ConfigureServices。连接字符串被正确引用。即使我使用正确的数据库而不是本地数据库,它仍然不起作用。谢谢你,阿纳迪。我发现了问题。我没有更新另一个文件中的连接字符串。