1

我花了很长时间才弄清楚这一点,但似乎无法解决问题。我正在使用 MySql 和 Visual Basic。

我正在使用 select 语句来获取我需要的变量,然后使用数据阅读器进行循环,获取变量(到字符串),最后将这些设置为我在表单中使用的文本标签。我确信我正在遵循正确的程序,但这似乎并没有带来结果。

如果有人可以帮助我,我将不胜感激。我的代码如下;

    lblName.Text = Form1.topicName

    MyConnString = "Database=case management system;Data Source=localhost;User Id=root;Password="abc"
    Dim MySqlConn As New MySqlConnection(MyConnString)
    Dim MySelectQuery As String = "SELECT topic_id, topic_name, description, useful_links, employee_id, date "             
       & "FROM knowledge_base "
       & "WHERE topic_name = '" & lblName.Text & "'"
    Dim myCommand As New MySqlCommand(MySelectQuery)
    myCommand.Connection = MySqlConn
    MySqlConn.Open()
    myCommand.ExecuteNonQuery()
    mydata = myCommand.ExecuteReader
    While mydata.Read()
        labelDescription.Text = mydata.Item("description").ToString
        labelLinks.Text = mydata.Item("useful_links").ToString
    End While
    mydata.Close()
    myCommand.Connection.Close()
    MySqlConn.Close()
4

1 回答 1

1

删除包含myCommand.ExecuteNonQuery(). 你在做查询!

此外,标签(描述和链接)将仅包含返回的最后一行中的最后一个数据。

将文本输入直接添加到 SQL 命令允许 SQL 注入攻击。您应该使用 sql 参数。请参阅http://www.dotnetperls.com/sqlparameter

于 2013-01-22T19:09:26.460 回答