【问题标题】:(provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)(提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)
【发布时间】:2017-12-20 12:42:41
【问题描述】:

其他信息:在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)。

我正在尝试从我的 vb 网站项目连接到我的在线数据库,但总是收到上述错误

我尝试将服务器名称更改为 ip,localhost 但仍然是同样的问题!

我的连接字符串

cnn.ConnectionString = "server=mrsandg.com; user=username ;password=password ;Database=my_db;"

我检查过

Connecting to a Online MySQL Database using VB.Net

SqlConnection error Named Pipes Provider

https://www.daniweb.com/programming/software-development/threads/488146/how-to-connect-vb-net-on-a-online-database

【问题讨论】:

  • 请解释一下。您的在线数据库是 MySql 还是 Sql Server?尝试打开连接的代码在哪里?
  • 我的数据库是Mysql 代码:cnn = New SqlClient.SqlConnection cnn.ConnectionString = "server=mrsandg.com; user=username ;password=password ;Database=my_db;" Try cnn.Open() Catch ex As Exception MsgBox(ex.Message) End Try If cnn.State ConnectionState.Open Then MsgBox("DB Connection Faild") End If @Steve
  • 如果数据库是 MySql 那么你应该使用 MySql 的类而不是 Sql Server 的类。下载并安装 MySql Net 连接器(或仅使用 NuGet 包管理器),添加对 MySql dll 的引用并将适当的命名空间添加到您的代码中。最后将每个 SqlXXXXX 类更改为与 MySql 匹配的类(MySqlConnection、MySqlCommand 等...)
  • 已经安装了网络连接器,但是“添加对 MySql dll 的引用”是什么意思?您的意思是在我的项目中添加引用吗?我找不到它:(@Steve
  • 是的,如果你想使用一个库,你需要引用它。通常通过右键单击项目引用节点,您可以添加新引用。但是您可以简单地使用 NuGet 包管理器,搜索 MySql.Data 并安装。这将下载库并将所需的引用添加到您的项目中。接下来,您需要在要使用 MySql 类的文件中 Import MySql.Data.MySqlClient

标签: mysql sql-server vb.net


【解决方案1】:

您的问题是您正在使用System.Data.SqlClient.SqlConnection 尝试连接到MySql 服务器。

要连接到MySql,您需要使用MySqlConnection,这需要您为Ado.Net 添加一个名为MySql.Data 的参考MySql 提供程序

最简单的方法是使用 NuGet 包管理器。在 Visual Studio 中单击:工具 > NuGet 包管理器 -> 管理 Nuget 包以获取解决方案。

在表单中,单击浏览并选择 MySql.Data。

注意:如果您希望使用 EntityFramework 提供程序来代替 Ado.Net,也可以使用它。

从这里,检查您要在其中使用提供程序的项目,然后单击安装。

【讨论】:

    猜你喜欢
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    • 2011-03-08
    • 2013-05-14
    • 1970-01-01
    • 2012-04-14
    相关资源
    最近更新 更多