在Vb 2010中从MySQL在datagridview中显示数据的问题 [英] Problem in displaying data in datagridview from MySQL in Vb 2010

查看:244
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆