在Vb 2010中从MySQL在datagridview中显示数据的问题 [英] Problem in displaying data in datagridview from MySQL in Vb 2010
本文介绍了在Vb 2010中从MySQL在datagridview中显示数据的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我无法弄清楚这是什么问题。数据只是在表单加载时没有显示在datagridview中。
显示已连接的msgbox,单击OK后,它会使用datagrid对form1进行解除,但是没有任何内容。
这里是我的代码:
I cannot figure out whats the problem. Data is just not displaying in datagridview on form load.
It shows "connected" msgbox, after clicking OK, it dispplays form1 with datagrid but nothing on it.
here is my code:
Imports MySql.Data.MySqlClient
Public Class Form1
Dim dataAdap As MySqlDataAdapter
Dim cmdBuild As MySqlCommandBuilder
Public data As DataTable
Dim conn As New MySqlConnection
Dim connected As Boolean = False
Sub connect()
Dim name As String = "test"
Dim server As String = "localhost"
Dim user As String = "root"
Dim pwd As String = "mysql"
If Not conn Is Nothing Then conn.Close()
conn.ConnectionString = String.Format("server={0}; userid={1};password={2};database={3};pooling=false", server, user, pwd, name)
Try
conn.Open()
MsgBox("connected")
Catch ex As Exception
MsgBox("Cannot connect")
End Try
End Sub
Sub search(ByVal str As String)
Try
If connected Then
data = New DataTable
dataAdap = New MySqlDataAdapter("SELECT * from testtable", conn)
cmdBuild = New MySqlCommandBuilder(dataAdap)
dataAdap.Fill(data)
Me.DataGridView1.DataSource = data
End If
Catch ex As Exception
End Try
End Sub
Sub view()
If Me.connected Then
Try
data = New DataTable
dataAdap = New MySqlDataAdapter("SELECT * from testtable", conn)
cmdBuild = New MySqlCommandBuilder(dataAdap)
dataAdap.Fill(data)
Catch ex As Exception
MsgBox("Error connecting to database")
End Try
Me.DataGridView1.DataSource = data
End If
End Sub
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim connector As New Form1
connector.connect()
DataGridView1.DataSource = connector.data
connector.view()
End Sub
End Class
请尽快帮助。
Please help asap.
推荐答案
Imports MySql.Data.MySqlClient
Public Class Form1
Dim dataAdap As MySqlDataAdapter
Dim cmdBuild As MySqlCommandBuilder
Public data As DataTable
Dim conn As New MySqlConnection
Dim connected As Boolean = False
Sub connect()
Dim name As String = "test"
Dim server As String = "localhost"
Dim user As String = "root"
Dim pwd As String = "mysql"
conn.ConnectionString = String.Format("server={0}; userid={1};password={2};database={3};pooling=false", server, user, pwd, name)
If conn.status = System.Data.ConnectionState.Open Then conn.Close()
Try
conn.Open()
MsgBox("connected")
connected = True
Catch ex As Exception
MsgBox("Cannot connect")
End Try
End Sub
Sub search(ByVal str As String)
Try
If connected Then
data = New DataTable
dataAdap = New MySqlDataAdapter("SELECT * from testtable", conn)
'cmdBuild = New MySqlCommandBuilder(dataAdap) you don`t need that
dataAdap.Fill(data)
Me.DataGridView1.DataSource = data
End If
Catch ex As Exception
End Try
End Sub
Sub view()
If Me.connected Then
Try
data = New DataTable
dataAdap = New MySqlDataAdapter("SELECT * from testtable", conn)
'cmdBuild = New MySqlCommandBuilder(dataAdap) you don`t need that
dataAdap.Fill(data)
Catch ex As Exception
MsgBox("Error connecting to database")
End Try
Me.DataGridView1.DataSource = data
End If
End Sub
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim connector As New Form1
connector.connect()
DataGridView1.DataSource = connector.data
connector.view()
End Sub
End Class
但是当您使用 DataAdapter
时,您不需要控制连接
statue因为此对象管理了您的连接
状态。我建议您使用
However when you work with DataAdapter
you don`t need to the control connection
statue because this object managed your connection
status. and I suggest to you used
conn.status = System.Data.ConnectionState.Open
连接布尔变量它优于。
最好的问候。
to connected Boolean variable it is better than.
Best Regards.
这篇关于在Vb 2010中从MySQL在datagridview中显示数据的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文