删除数据库文件和 sqllocaldb 后,底层提供程序在打开时失败

Posted

技术标签:

【中文标题】删除数据库文件和 sqllocaldb 后,底层提供程序在打开时失败【英文标题】:The underlying provider failed on Open after deleting database files and sqllocaldb 【发布时间】:2019-05-21 12:33:29 【问题描述】:

我正在调查我对the issue here的体验

当我的 Winforms XAF、Entity Framework Code First + Desktop Bridge 应用程序通过 Windows 应用商店安装时,它会在用户目录中创建一个数据库。

如果我删除这些文件,那么当我尝试重新运行应用程序时会出现错误。

The underlying provider failed on Open

这是因为我没有正确删除数据库。

正如链接问题中所解释的那样。

我尝试了修复

sqllocaldb.exe stop MSSQLLocalDB
sqllocaldb.exe delete MSSQLLocalDB

但它并没有解决问题。 此外,我找不到要连接的 SQL Server 实例(通过 Management Studio 2017)以删除数据库。

我在 c:\Program Files\Microsoft SQL Server 下有以下文件夹

[更新]

我试着跑了

sqllocaldb.exe info mssqllocaldb 

提供版本 13.1.4001.0

获取实例管道名称以用于通过 SQL Server 对象资源管理器进行连接 然后我能够创建一个同名的新数据库,然后将其删除。 然而这并没有解决我的问题。

[更新]

连接字符串是

"Integrated Security=SSPI;MultipleActiveResultSets=True;Data Source=(localdb)\mssqllocaldb;Initial Catalog=mydatabase"

我已经问过a related question here

我现在认为 UWP 不支持 localdb

【问题讨论】:

应用程序的连接字符串是什么样的?这将有助于了解去哪里以及如何访问商店。 另外check here 取决于您拥有的本地数据库版本,您可能能够弄清楚。 谢谢@JohnBabb 我更新了问题。 克尔斯滕,你找到答案了吗?当 LocalDB 实例变得时髦时,我使用了一种焦土方法,包括删除实例目录以及指向它们的注册表项。如果您仍然需要帮助解决此问题,我可以为您提供详细信息。 感谢@RichardII 阅读***.com/questions/42028186/…后我切换到SQLite 【参考方案1】:

使用 Management Studio 2017,如果您以管理员身份运行它,您应该能够使用受信任的连接连接到 (localdb)\MSSQLLocalDB。这应该会打开服务,让您了解附加的数据库。从那里您应该能够删除/创建...执行配置和设置数据库上下文所需的操作。

【讨论】:

我可以连接到 (localdb)\MSSQLLocalDB 但是通过 UWP 程序创建的数据库没有列出。 通过在服务器级别刷新资源管理器窗口进行双重检查。 谢谢,没用。

以上是关于删除数据库文件和 sqllocaldb 后,底层提供程序在打开时失败的主要内容,如果未能解决你的问题,请参考以下文章

Cannot attach the file ‘{0}' as database '{1}'

SqlLocalDB2014使用笔记

为啥我无法连接到 SqlLocalDB?

如何安装localdb 2016

SqlLocalDB

具有个人帐户和托管 ASP.NET Core 的 Blazor WebAssembly 应用程序 - IIS - SQLLocalDB 15.0 找不到指定的资源语言 ID