[ad_1]
Halo,
Saya mencoba menyambung ke MYSQLWorkbench DataBase dari VB.NET (Visual Studio) menggunakan kode ini:
Imports System.Data Imports MySql.Data.MySqlClient Imports MySql.Data Public Class Form1 Dim oCon As MySql.Data.MySqlClient.MySqlConnection Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim sProveedor As String sProveedor = "server = localhost; database = vikingos_barberia; user id = root; password = **********; port = 3306" oCon = New MySqlClient.MySqlConnection(sProveedor) oCon.Open() MsgBox("Conexion Exitosa!!") End Sub End Class
Apa yang saya coba:
Saya memverifikasi beberapa kali parameter tanpa perubahan apa pun.
Solusi 2
Untuk menambah apa yang Dave katakan, ini bahkan lebih buruk – Anda membuka koneksi ke DB yang tidak pernah dapat digunakan karena hanya disimpan dalam variabel lokal, yang berada di luar cakupan pada akhir event handler Form.Load.
Karena tidak dapat diakses sama sekali di luar metode (sebenarnya semua variabel lokal tidak ada lagi saat metode berakhir) koneksi yang Anda buat sama sekali tidak berguna, dan hanya memakan sumber daya yang langka di server.
Anda harus selalu kami a Using
blok di sekitar pembuatan objek DB apa pun (Koneksi, Perintah, Pembaca, dan Adaptor) untuk menutup dan membuangnya secara otomatis ketika blok berakhir:
Using con As New SqlConnection(strConnect) con.Open() Using cmd As New SqlCommand("SELECT iD, description FROM myTable", con) Using reader As SqlDataReader = cmd.ExecuteReader() While reader.Read() Dim id__1 As Integer = CInt(reader("iD")) Dim desc As String = DirectCast(reader("description"), String) Console.WriteLine("ID: {0}" & vbLf & " {1}", iD, desc) End While End Using End Using End Using
Solusi 1
Kode yang Anda posting tidak mungkin menghasilkan kesalahan itu. Pesan kesalahan mengacu pada mengonversi sesuatu yang diambil dari database dengan nilai bidang DbNull dan Anda mencoba mengonversinya ke tipe lain.
Kode yang Anda posting tidak menjalankan kueri sama sekali. Yang Anda lakukan hanyalah membuka koneksi di acara Form_Load.
Sebagai catatan tambahan, Anda TIDAK boleh membuka koneksi ke database dan membiarkannya tetap terbuka seumur hidup aplikasi Anda. Anda harus membuka koneksi ke database hanya ketika Anda perlu menjalankan kueri, dan menutupnya sesegera mungkin.
Solusi 3
Masalahnya adalah Anda menggunakan perpustakaan kelas MySql.Data Oracle yang sangat bermasalah. Itu tidak dirawat dengan baik dan harus dihindari. Ini tidak kompatibel dengan versi MariaDB yang lebih baru dan kesalahannya sering kali tidak masuk akal seperti yang Anda terima.
Alih-alih beralih menggunakan MySqlConnector yang benar-benar open source. Kodenya sama, Anda hanya perlu mengubah baris Impor di bagian atas setiap modul atau kelas.
[ad_2]
コメント