2016-10-14 39 views
0

我一直在试图连接到Visual Studio 2015中的本地MySQL数据库。这是我使用的代码。Visual Studio 2015连接到MySQL数据库的问题

Imports System.Data.Sql 

进口System.Data.SqlClient的

公共类SQLControl

Public SQLCon As New SqlConnection With {.ConnectionString = "Server=localhost,3306;user=root;database=database;pwd=xxxx;"} 
Public SQLCmd As SqlCommand 

Public Function HasConnection() As Boolean 
    Try 
     SQLCon.Open() 

     SQLCon.Close() 
     Return True 
    Catch ex As Exception 
     MsgBox(ex.Message) 
     Return False 
    Finally 
     SQLCon.Dispose() 
    End Try 
End Function 

我收到错误: “内部连接致命错误错误状态:18”

OR我收到错误: “与服务器成功建立连接,但在登录前握手过程中发生错误。 (提供程序:TCP提供程序,错误:0 - 建立的连接被主机中的软件中止。)

我收到哪个错误似乎是随机的。我已经改变了许多设置无效,包括服务器的端口到1433,这给了我相同的错误。

我想知道是否有任何方法可以通过VS 2015或服务器设置本身来解决这个问题。

备注:我可以通过VS的服务器浏览器和本机上的其他程序(Anypoint Studio)连接到数据库,但这不符合项目的目的。

+1

C#的当量是'使用MySql.Data.MySqlClient; 使用MySql.Data;'所以你没有使用正确的类 – Drew

+0

这是实际的答案?我必须在VB.net中编写这个项目。不会使用不正确的类抛出一个不同的异常,而不是我正在接收的异常? –

+0

我所知道的是,人们经常将它指向sql-server类而不是mysql。你绝对(IMO)需要在最后一张图片[Here](http://stackoverflow.com/a/38706288)中看到的东西。然后,即使某些人使用'using'(或'Imports')后,经常会转过头来,只是使用sqlserver类,所有混合和容易出错。看到这也http://stackoverflow.com/a/38277659 ....你可以很容易地在你的头翻译一个vb.net – Drew

回答

1

德鲁是对的。我正在使用SQL类而不是MySQL类。

导入MySQL.Data.MySQLClient类和使用的MySqlConnection代替的SqlConnection解决该问题:

Imports MySql.Data.MySqlClient 


Public Class MySQLControl 

Public MySQLCon As New MySqlConnection With {.ConnectionString = "Server=localhost;user=root;database=database;pwd=xxxx;"} 
Public MySQLCmd As MySqlCommand 

Public Function HasConnection() As Boolean 
    Try 
     MySQLCon.Open() 

     MySQLCon.Close() 
     Return True 
    Catch ex As Exception 
     MsgBox(ex.Message) 
     Return False 
     MySQLCon.Close() 
    Finally 
     MySQLCon.Dispose() 
    End Try 
End Function 
+0

你还需要使用MySqlCommand。只是FYI。 – smoore4

+0

请使用代码改善此答案,以便人们知道。一旦你把整个东西排除出 – Drew

+0

thx分享 – Drew