代码如下:
Imports MySql.Data.MySqlClient
Public Class Form1
Dim conStr As String = "server=" & "localhost" & ";uid=" & "root" & ";pwd=" & "******" & ";database= customs;pooling=false"
Dim sqlStr As String
Dim objConn As New MySqlConnection(conStr)
Dim objAdp As New MySqlDataAdapter
Dim objDataSet As New DataSet
' 测试连接
Function Connect_DB(ByVal constr As String)
'objConn = New MySqlConnection(constr)
Try
objConn.Open()
TextBox1.Text = "数据库连接成功!"
Catch ex As Exception
TextBox1.Text = ex.Message
MsgBox(ex.Message & vbCrLf & "数据库连接失败!")
Finally
objConn.Close()
End Try
End Function
' 执行查询
Public Function Query_DB(ByVal sql As String) As DataTable
Dim objAdp = New MySqlDataAdapter(sql, objConn)
Try
objAdp.Fill(objDataSet, "QueryData")
DataGridView1.DataSource = objDataSet.Tables("QueryData")
'Return dTable
Catch ex As Exception
TextBox1.Text = sql + vbCrLf + ex.Message
Return Nothing
Finally
objConn.Close()
End Try
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Connect_DB(conStr)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim sql = "select * from printing_data"
Query_DB(sql)
End Sub
End Class
运行,点击Button1连接数据库,报错:The given key was not present in the dictionary.
在conStr后加上charset=utf8,如下:Dim conStr As String = "server=" & "localhost" & ";uid=" & "root" & ";pwd=" & "222310" & ";database= customs;pooling=false;charset=utf8"
运行,连接数据库成功。
点击Button2查询数据,运行到objAdp.Fill(objDataSet, "QueryData")时又报错:The given key was not present in the dictionary.
即时窗口提示:Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
怎么搞也搞不好了,请大神指点
另外,MySQL数据库设定的charset设定为utf8mp4,有尝试过将其改为utf8,无效。
其他配置:.NET Framework 4.7.2 SDK MySQL Connector Net 8.0.19 都是新安装的