#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