Visual Studio连接数据库出现“SQL Network Interfaces,error: 50-发生了LocalDatabase Runtime”的解决方案


!本贴重点看这里!

针对在VS中连接数据库出现“SQL Network Interfaces,error: 50-发生了LocalDatabase Runtime”相关的系统报错、异常

主要问题在于本机没有相关的数据库(LocalDB)实例

在命令提示符中使用sqllocaldb i查看相关的localdb实例,一般只有MSSQLLocalDB也可使用,或者根据自己使用的VS版本创建新的实例(VS2017/2019一般使用v13.0,v11.0不可用

实例创建命令:sqllocaldb create v13.0

PS:如果实例损坏,使用sqllocaldb delete 相关实例名称,再创建新的即可

创建好实例后,在代码的App.config以及cs源码文件中找到相关代码(Data Source)进行修改即可👇

@"Data Source=(LocalDB)\v13.0;AttachDbFilename=|DataDirectory|\数据库文件名字.mdf;Integrated Security=True;Connect Timeout=30";

另外查看VS相关数据库问题,先查两个地方:“视图--服务器资源管理器--数据连接”“视图--其他窗口--数据源”,数据库和源重新匹配下


解决过程

最近研究C#的数据库使用,没想到真就万事开头难,直接卡在最开始:数据库没法用!!!

由于是自学,网上找了很多的案例代码,一般来说都是可以直接跑,但偏偏这次连效果都看不了!(气)

代码运行中出现了一个异常👇

System.Data.SqlClient.SqlException:"在与SQL Server建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且SQL Server 已配置为允许远程连接。(provider: SQL Network Interfaces,error: 50-发生了LocalDatabase Runtime错误。指定的LocalDB 实例不存在。


自行尝试

考虑到和数据库相关的问题,无非就是源码bug/连接bug/数据库文件bug,代码和数据库文件都没动过,所以肯定还是连接出了问题。

VS的数据库使用有两个方面,一个是数据连接,另一个是数据源匹配,所以我从这两个角度入手解决问题。

以下是我的解决方法(使用工具:VS2017):

1. 在“视图--服务器资源管理器--数据连接”中将原始的mdf文件删除(文件匹配本地文件夹位置,因此需要重新添加),添加代码相关的数据库mdf文件,然后给我弹出了这个👇

连接字符串中的数据源值指定未安装的SQL Server 的实例。要解决此问题,可选择安装匹配的SQL Server 实例或修改连接字符串中的数据源值。

此路没通,那换一条好了🙃

2. 在解决方案资源管理器中将原始的mdf和xsd文件(数据库匹配的数据源文件)都删掉,然后“视图--其他窗口--数据源”添加新的连接,一路下一步,在新建连接中选择匹配的数据库

emmmmm然后它卡住了,3分钟后给我弹了个这个👇

未能打开到以下数据库的连接:
“尝试附加到数据库失败并出现以下信息:在与SQL Server建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server已配置为允许远程连接。(provider: SQL Network Interfaces, error:50-发生了Local Database Runtime错误。指定的 LocalDB实例不存在。)”请检查连接并重试。

这个error:50有那么点熟悉啊🙃

3. VS重装

会不会是电脑系统的问题导致VS运行报错呢(之前有过类似的经历💩),用的2017听说还是bug很多的一代,干脆一不做二不休,上虚拟机整个19的好了

漫长的安装过程......

由于是虚拟机简装,使用数据库这几个是必须要装的,就算之前没装跑代码系统后面会提醒安装:

代码跑完依旧是相同的问题(气)🙃


成功解决

(参考链接👉https://www.cnblogs.com/summit7ca/p/4559694.html )

从网上看了很多关于VS连接数据库的方法,但代码使用的是mdf数据库文件直接连接,网上相关的内容很少,因此只能根据部分网上大佬的建议瞎摸索😐

有一个关键字出现了很多次:LocalDB。

LocalDB是SqlServer Express版本的轻量级版本,植入VS供数据库的相关操作。既然要用localdb数据库肯定需要相关的配置文件,在App.config中我找到了!熟悉的LocalDB!!!

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="WindowsFormsApplication14.Properties.Settings.ConnectionString"
            connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\数据库文件名字.mdf;Integrated Security=True;Connect Timeout=30"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
</configuration>
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\数据库文件名字.mdf;Integrated Security=True;Connect Timeout=30"

(注意这里的v11.0是解决问题的关键!!!)

我一直以为这个v11.0只是版本的意思,它还指代码所用实例!!!搞了那么久,实际问题就在于电脑本身没有相关的实例🙃

在命令提示符中使用sqllocaldb查看localdb的相关属性,使用sqllocaldb i查看相关实例,一般来说只有MSSQLLocalDB,因此需要自己创建,源码的v11.0在VS2017及往后版本是不能使用的

使用sqllocaldb create v13.0创建v13.0实例,然后输入sqllocaldb i就可以看见实例创建成功了,配置文件也相对应的更改为v13.0:

connectionString="Data Source=(LocalDB)\v13.0;AttachDbFilename=|DataDirectory|\数据库文件名字.mdf;Integrated Security=True;Connect Timeout=30"

源码的cs文件相关语句也需要修改(CTRL+F搜索Data Source即可):

@"Data Source=(LocalDB)\v13.0;AttachDbFilename=|DataDirectory|\数据库文件名字.mdf;Integrated Security=True;Connect Timeout=30";

跑通了!!!!!终于!!!!!撒花!!!!!🌞

小盆友不妥之处烦请大佬指正呀~

  • 13
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
### 回答1: 这个错误提示是在尝试连接 SQL Server 数据库出现的,可能是由于网络问题或者实例配置问题导致的。需要验证实例名称是否正确,并且 SQL Server 是否已经配置为允许远程连接。同时,还需要检查网络连接是否正常。错误信息中提到了一个 provider: sql network interfaces, error: 26 - 定位指定的服务器/实例时出错,这可能是由于连接字符串中指定的服务器或实例名称不正确导致的。 ### 回答2: “与网络相关的或特定于实例的错误”一般是指连接数据库出现的错误。可能是由于网络问题、实例名称输入错误或 SQL Server 的设置问题导致连接失败。在面对这种情况时,最好分步骤进行排错。 首先,我们需要检查网络连接。确认本地网络连接是否正常,检查远程服务器是否开启并处于连接状态。如果网络没有问题,那么可以再次检查实例名称是否正确,尝试通过 IP 地址连接 SQL Server。 如果连接仍然失败,那么问题可能是由 SQL Server 的设置问题导致的。请检查是否启用了远程连接。可以在 SQL Server Configuration Manager 中找到“SQL Server Services”,选择要连接的实例,并在“TCP/IP”协议的属性中启用“远程连接”。 如果以上方法都没有解决问题,使用 SQL Server Management Studio 检查实例的端口号和配置文件中的信息是否匹配。还可以使用 SQL Server Profiler 来检测是否有连接请求到达服务端。 总之,在与 SQL Server 建立连接出现网络相关或特定于实例的错误时,我们应该分步骤进行排错,从网络连接到实例名称、SQL Server 设置等方面逐一排查,找到根本原因并进行解决。 ### 回答3: 如果在与 SQL Server 建立连接出现网络或特定于实例的错误,这通常表示服务器无法在网络上被找到或无法被访问。这个问题经常出现在以下情况下: 1. 实例名称不正确:检查实例名称是否正确拼写。有时候可能会发生笔误或者其他拼写错误导致实例名称不被识别。 2. SQL Server 配置不正确:确保 SQL Server 已经正确配置为允许远程连接和接受来自特定 IP 地址的连接。这可以在 SQL Server 的配置管理器界面中进行修改。 3. 防火墙堵塞连接:防火墙可能会阻止连接SQL Server,这通常由于网络安全策略导致。您需要根据使用的防火墙软件,进行相应的配置,允许 SQL Server 数据库的访问。 4. 实例不存在或已关闭:检查 SQL Server 是否启动。如果未启动或已关闭,您需要启动 SQL Server 服务并检查 SQL Server 日志以找出任何与该问题相关的详细信息。 5. SQL Server 配置错误:如果您对 SQL Server 不熟悉或不确定某些配置如何设置,您可以搜索SQL Server的相关帮助文档或咨询相关的技术支持。 总之,要解决SQL Server 建立连接出现的网络或特定于实例的错误,您需要仔细检查配置并尝试进行简单的故障排除。拉一个专业的人员为您解决也是个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慢热纠结怪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值