【问题标题】:Why asp.net core mvc still connect to the same database even though I change the database name in the connection string?为什么即使我更改了连接字符串中的数据库名称,asp.net core mvc 仍然连接到同一个数据库?
【发布时间】:2019-11-29 17:12:02
【问题描述】:

我使用 SQL Server Management Studio 将名为“aspnet-SimpleBank-C2FC2762-4DD0-4E9A-90C2-C876AA53348C”的数据库导出为 SimpleBankDatabase.bacpac。然后将 SimpleBankDatabase.bacpac 作为 SimpleBank 导入数据库。我更改了我的应用程序中的连接字符串以连接到 SimpleBank,但应用程序仍然连接到旧的,因为我尝试通过应用程序将一些数据添加到数据库中。

我尝试将“SimpleBank”复制到存储“aspnet-SimpleBank-C2FC2762-4DD0-4E9A-90C2-C876AA53348C”的文件夹中,但还是不行。

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": "*"
    }

数据库名称完全不同,但应用程序仍连接到旧数据库。

【问题讨论】:

  • JSON 没有 cmets。删除该行,不要尝试将其注释掉。如果这是默认生成的数据库,我假设解析设置失败并创建默认连接字符串。

标签: c# json asp.net-core .net-core asp.net-core-mvc


【解决方案1】:

我认为您在这里遇到的问题是您在此行中使用localdb

(localdb)\\mssqllocaldb

因此,如果您将 sql server 更改为您的 sql server 地址以连接到 db。

【讨论】:

  • 我安装 MS SQL Server 2017 Express 并将服务器名称更改为 Server=localhost\\SQLEXPRESS。它仍然连接到 localdb 上的旧数据库。应用程序行为很奇怪。只有连接字符串中导入的数据库名称才允许应用程序连接到旧数据库。
  • 我觉得你可以删除bin和obj文件夹来清理缓存
  • 我刚刚删除了bind和obj文件夹,但它仍然连接到旧数据库。有没有办法将 Visual Studio 配置为不使用 LocalDB?我记得我曾经在某个地方看到过它,但我再也找不到它了。
  • 您在项目中使用了用户密码吗?
  • 不,但我使用个人用户帐户作为 asp.net core mvc 模板。注册用户时会自动创建数据库。
【解决方案2】:

简单的一点是,如果您已将连接字符串更改为不同的数据库,并且如果字符串写入正确,它肯定会起作用(即使错误也会抛出异常)。考虑到您已正确注释了第一个连接字符串(您的帖子中未显示正确),我建议您检查以下内容。

  1. 您是否在其他位置覆盖了连接字符串?
  2. 检查您的ConfigureServicesmethod(或您读取连接字符串的位置)并在那里放置一个调试点以获取工作连接字符串。
  3. 如果您有任何Environment 特定的appsetting 文件并且其中写入了连接字符串,那么您忘记更改的内容也是如此。

【讨论】:

  • 我检查了 ConfigureServices。正确引用了连接字符串。即使我使用正确的数据库而不是 localDB,它仍然无法正常工作。
  • 谢谢你,阿纳迪。我发现了问题。我没有更新另一个文件中的连接字符串。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2016-10-28
  • 1970-01-01
  • 2015-02-05
  • 2015-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多