从mysql选择查询在vb中填充标签

fv2wmkja  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(377)

我找到了一些与我的问题相似的文章,我尝试了这些文章中的建议,但没有一篇对我有用。我需要的似乎是相当简单和直接的(我可以用sql server完成同样的操作,但不能用mysql。此“说明”信息必须来自mysql数据库)
我有一个listbox,当用户单击listbox项时,我想用从mysql数据库中提取的值更新一个“description”标签。
我在模块中创建了一个公共sub,并从listbox1\u selectedindexchanged事件(也尝试了listbox1\u mouseclick事件)调用该sub。
但是,我所尝试的一切都不会更新标签。如有任何建议,将不胜感激。
下面是用于拉入并尝试填充标签的代码:

Dim conn As New MySqlConnection(My.Resources.MySqlstr)

Try
    conn.Open()
    Dim cmd As MySqlCommand = New MySqlCommand("select Description from resourceaccess where tid = '" & ReportPicker.ListBox1.ValueMember & "' ", conn)
    Dim reader As MySqlDataReader = cmd.ExecuteReader()

    While reader.Read()
        ReportPicker.Label3.Text = reader.GetString("Description")

    End While

    reader.Close()

Catch ex As MySqlException
    MessageBox.Show(ex.Message)
Finally
    conn.Close()
End Try
ar5n3qh5

ar5n3qh51#

我不知道是不是也出了什么问题,但这肯定是:

Dim cmd As MySqlCommand = New MySqlCommand("select Description from resourceaccess where tid = '" & ReportPicker.ListBox1.ValueMember & "' ", conn)

除了您应该在那里使用参数之外 ValueMember 不可能是对的。这是列的名称,而不是该列的值。你应该使用 SelectedValue ,它是该列中选定项的值。

kse8i1jr

kse8i1jr2#

以下是有效的方法:

Dim cs As String = My.Resources.MySqlstr

    Dim stm As String = "select Description from resourceaccess where resource = '" & ReportPicker.ListBox1.Text & "' "
    Dim conn As MySqlConnection = New MySqlConnection(cs)

    Try
        conn.Open()

        Dim cmd As MySqlCommand = New MySqlCommand(stm, conn)

        ReportPicker.Label3.Text = Convert.ToString(cmd.ExecuteScalar())

    Catch ex As MySqlException
        MessageBox.Show(ex.Message)
    Finally
        conn.Close()
    End Try

相关问题