如何通过adodb连接datagrid和mysql数据库
How to connect datagrid and mysql database through adodb
我必须使用 mysql 中的 adodb 在 vb.net(visual studio 2008)的数据网格中显示 table。
但以下代码不起作用。(未显示错误)
请帮忙
由于错误,我选择了 adodb,即使经过多次尝试,使用 mysqldataadpter
Imports MySql.Data.MySqlClient
'Imports MySql.Data.Types
'Imports MySql.Data.VisualStudio
'Imports MySql.Data
Imports System.IO
Imports System.Data
Imports CrystalDecisions.CrystalReports.Engine
Public Class Form3
Dim sSQLQry As String
Dim ReturnArray
Dim Conn As New ADODB.Connection
Dim mrs As New ADODB.Recordset
Dim mrs2 As New ADODB.Recordset
Dim DBPath As String, sconnect As String
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
sconnect = "DRIVER={MySQL ODBC 8.0 Unicode Driver};Server=localhost;Database=stockauto;User=root;Password=;"
If Conn.State = 1 Then
Conn.Close()
End If
Conn.Open(sconnect)
sql2 = "SELECT * From STOCK"
mrs.Open(sql2, Conn)
If mrs.State = 1 Then
mrs.Close()
End If
mrs.Open(sql2, Conn)
DataGridView1.DataSource = mrs
DataGridView1.Refresh()
End Sub
ADODB 是 .Net 之前的旧机制 VB。它的存在只是为了与旧代码向后兼容,不应用于新开发。
试试这个,它使用更新后的 ADO.Net:
' Don't use the root account to connect to the database!
Private sconnect As String = "DRIVER={MySQL ODBC 8.0 Unicode Driver};Server=localhost;Database=stockauto;User=root;Password=;"
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim data As New DataTable
Using cn As New MySqlConnection(sconnect), _
cmd As New MySqlCommand("SELECT * FROM Stock", cn), _
da As New MySqlDataAdapter(cmd)
da.Fill(data)
End Using
DataGridView1.DataSource = data
DataGridView1.Refresh()
End Sub
首先是连接字符串。参见 https://www.connectionstrings.com/mysql-connector-net-mysqlconnection/
我用了最简单的例子。将 yourUserID
和 yourPassword
替换为实际值。
摆脱所有 ADODB 和 ODBC 的东西。此代码使用 ADO.net
Using...End Using
块确保数据库对象被关闭和释放。
Private MySqlConnStr As String = "Server=localhost;Database=stockauto;Uid=yourUserId;Pwd=yourPassword;"
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim dt = GetStockData()
DataGridView1.DataSource = dt
End Sub
Private Function GetStockData() As DataTable
Dim dt As New DataTable
Using cn As New MySqlConnection(MySqlConnStr),
cmd As New MySqlCommand("SELECT * From STOCK", cn)
cn.Open()
Using reader = cmd.ExecuteReader
dt.Load(reader)
End Using
End Using
Return dt
End Function
我必须使用 mysql 中的 adodb 在 vb.net(visual studio 2008)的数据网格中显示 table。 但以下代码不起作用。(未显示错误) 请帮忙 由于错误,我选择了 adodb,即使经过多次尝试,使用 mysqldataadpter
Imports MySql.Data.MySqlClient
'Imports MySql.Data.Types
'Imports MySql.Data.VisualStudio
'Imports MySql.Data
Imports System.IO
Imports System.Data
Imports CrystalDecisions.CrystalReports.Engine
Public Class Form3
Dim sSQLQry As String
Dim ReturnArray
Dim Conn As New ADODB.Connection
Dim mrs As New ADODB.Recordset
Dim mrs2 As New ADODB.Recordset
Dim DBPath As String, sconnect As String
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
sconnect = "DRIVER={MySQL ODBC 8.0 Unicode Driver};Server=localhost;Database=stockauto;User=root;Password=;"
If Conn.State = 1 Then
Conn.Close()
End If
Conn.Open(sconnect)
sql2 = "SELECT * From STOCK"
mrs.Open(sql2, Conn)
If mrs.State = 1 Then
mrs.Close()
End If
mrs.Open(sql2, Conn)
DataGridView1.DataSource = mrs
DataGridView1.Refresh()
End Sub
ADODB 是 .Net 之前的旧机制 VB。它的存在只是为了与旧代码向后兼容,不应用于新开发。
试试这个,它使用更新后的 ADO.Net:
' Don't use the root account to connect to the database!
Private sconnect As String = "DRIVER={MySQL ODBC 8.0 Unicode Driver};Server=localhost;Database=stockauto;User=root;Password=;"
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim data As New DataTable
Using cn As New MySqlConnection(sconnect), _
cmd As New MySqlCommand("SELECT * FROM Stock", cn), _
da As New MySqlDataAdapter(cmd)
da.Fill(data)
End Using
DataGridView1.DataSource = data
DataGridView1.Refresh()
End Sub
首先是连接字符串。参见 https://www.connectionstrings.com/mysql-connector-net-mysqlconnection/
我用了最简单的例子。将 yourUserID
和 yourPassword
替换为实际值。
摆脱所有 ADODB 和 ODBC 的东西。此代码使用 ADO.net
Using...End Using
块确保数据库对象被关闭和释放。
Private MySqlConnStr As String = "Server=localhost;Database=stockauto;Uid=yourUserId;Pwd=yourPassword;"
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim dt = GetStockData()
DataGridView1.DataSource = dt
End Sub
Private Function GetStockData() As DataTable
Dim dt As New DataTable
Using cn As New MySqlConnection(MySqlConnStr),
cmd As New MySqlCommand("SELECT * From STOCK", cn)
cn.Open()
Using reader = cmd.ExecuteReader
dt.Load(reader)
End Using
End Using
Return dt
End Function