从MySQL选择查询在VB中填充标签

时间:2018-12-14 03:03:51

标签: mysql vb.net

我找到了几篇与我的问题相似的文章,并且我尝试了这些文章中的建议,但没有一篇对我有用。我所需要的似乎很简单直接。 (我可以使用SQL Server来完成相同的操作,而不能使用MySQL来完成。此“描述”信息必须来自MySQL数据库)

我有一个列表框,当用户单击列表框项时,我希望使用从MySQL数据库提取的值来更新“描述”标签。

我在模块中创建了一个公共子,并从Listbox1_SelectedIndexChanged事件(也尝试了Listbox1_mouseclick事件)调用该子。

但是,我尝试过的所有操作都不会更新标签。任何建议将不胜感激。

以下是用于提取并尝试填充标签的代码:

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

2 个答案:

答案 0 :(得分:0)

我也不知道是否还有其他问题,但这肯定是:

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

除了您应该在那里使用参数的事实之外,ValueMember的使用不可能是正确的。那是一列的名称,而不是该列的值。您应该使用SelectedValue,它是该列中所选项目的值。

答案 1 :(得分:-1)

这是有效的方法:

    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