Как решить проблему, появляется сообщение об ошибке vb.net mysql?

#mysql #vb.net

#mysql #vb.net

Вопрос:

У меня возникает ошибка при попытке выполнить следующий код.

Ошибка = «Инициализатор типа для ‘MySQL.Data.MySqlClient.Replication.ReplicationManager»выдал исключение«.

Я использую Visual Studio 2019 и MySQL Server 5.7. Помогите мне решить эту ошибку и заранее спасибо.

 Private Sub BtnEnter_Click(sender As Object, e As EventArgs) Handles BtnEnter.Click
    Dim server, user, password As String
    server = EdtServer.Text
    user = EdtUser.Text
    password = EdtPassword.Text

    Dim msb As MySqlConnectionStringBuilder = New MySqlConnectionStringBuilder
    msb.Server = server
    msb.Port = 3306
    msb.UserID = user
    msb.Password = password
    msb.Database = "test"

    Dim Con As MySqlConnection = New MySqlConnection(msb.ConnectionString)

    Try
        Con.Open()
        If (Con.State = ConnectionState.Open) Then
            MsgBox("Success !", MsgBoxStyle.Information)
        Else
            MsgBox("UnSuccess !!", MsgBoxStyle.Information)
        End If
    Catch ex As Exception
        MsgBox(ex.Message, MsgBoxStyle.Critical)
    End Try
End Sub
 

Комментарии:

1. можете ли вы увидеть, какое исключение он выдал? проверьте, есть ли в InnerException вашем улове свойство ex.

2. Тип инициализируется для ‘MySQL.Data.MySqlClient. MySqlConnectAttrs выдал исключение.

3. FileNotFoundException: не удалось загрузить файл или сборку ‘System.Management, Version = 4.0.0.0, Culture = нейтральный, PublicKeyToken =b03f5f7f11d50a3a’. Система не может найти указанный файл.

4. вы уверены, что добавили библиотеку DLL mysql в свою программу? в противном случае попробуйте установить соединения без builder

5. Да, я добавил DLL-файл

Ответ №1:

Избавьтесь от ненужных переменных. Вы можете присвоить значения текстового поля непосредственно свойствам msb, если эти свойства являются строками.

Соединения должны быть закрыты и утилизированы. Языки .Net обеспечивают использование…Прекратите использовать блоки для достижения этой цели за нас.

Вам не нужно проверять, открыто ли соединение. Если он не откроется, возникнет исключение, и код перейдет непосредственно к перехвату.

 Imports MySql.Data.MySqlClient 'At the top of the file

Private Sub BtnEnter_Click(sender As Object, e As EventArgs) Handles BtnEnter.Click
    Dim msb As MySqlConnectionStringBuilder = New MySqlConnectionStringBuilder
    msb.Server = EdtServer.Text
    msb.Port = 3306
    msb.UserID = EdtUser.Text
    msb.Password = EdtPassword.Text
    msb.Database = "test"
    Debug.Print(msb.ConnectionString) 'Will show up in the Immediate window
    Using Con As New MySqlConnection(msb.ConnectionString)
        Try
            Con.Open()
            MsgBox("Success !!", MsgBoxStyle.Information)
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical)
        End Try
    End Using
End Sub
 

В коде , который вы нам показали , нет ничего подобного MySql.Data.MySqlClient.Replication.ReplicationManager . Эта ошибка исходит откуда-то еще.

Комментарии:

1. Я бы сказал, что ваша строка подключения неверна. Видишь connectionstrings.com/mysql-connector-net-mysqlconnection