【问题标题】:MySQL result to array VB.NETMySQL 结果到数组 VB.NET
【发布时间】:2014-04-24 16:02:19
【问题描述】:

我正在 VB.NET 中创建一个程序,它使用在线 MySQL 数据库来检索某些数据。我现在已经成功地连接并从中获得了一些基本的东西。现在,我想做的是,当用户按下按钮时,它必须更新列表。发生的情况是,已经在数据库中的内容也被重新发送,因此列表只是自己翻了一番,尽管它添加了新的数据库值。

如何确保它只向列表中添加新值,而不是再次添加列表中的所有值?我读到您可以将 Preserve 关键字与数组一起使用,尽管这不是数组,我也没有弄清楚如何将数据转换为数组。

Private Sub generateList()
    DB.writeQuery("SELECT snacks.ID, snacks.naam, snacks.baktijd FROM snacks")

    While DB.DR.Read
        ListBox1.Items.Add(DB.DR.Item("naam"))
    End While

    DB.closeConnection()
End Sub

这是我用来生成列表的一段代码,我重复使用这段代码来刷新列表。如您所见,它使用了我自己编写的 MySQL 类。我知道它建立了联系,所以这没有什么问题。

任何帮助将不胜感激。

【问题讨论】:

  • “如你所见,它使用我自己编写的 MySQL 类” 避免这样做。另外,如果我们不知道您自己的课程是如何运作的,那么很难回答问题。无论如何,是的,使用ListBox1.Items.Clear(),并确保在清除之前调用ListBox1.BeginUpdate(),并在generateList()结束时调用ListBox1.EndUpdate()
  • 另外,与其自己做繁重的工作并编写一个新的类来访问数据库,不如已经有数据访问层类为您处理这部分。这是其中之一的链接:codeproject.com/Articles/158042/…
  • 感谢两位。我知道使用一个已经编写过并在过去证明过自己的类要容易得多,而且可能要安全得多。当我刚刚完成教程时,我认为自己编写一个类是一个好习惯。不过谢谢

标签: mysql arrays database vb.net


【解决方案1】:

您要做的是在重新加载列表之前清除ListBox。你可以这样做:

ListBox1.Items.Clear()

那么当你重新加载列表时,项目就不会重复了。

【讨论】:

  • 我就知道就是这么简单!现在我记得我是在我看过的 200 个教程之一中学到的。非常感谢!
【解决方案2】:

看起来您需要在添加项目之前清除列表框。

ListBox1.Items.Clear()

【讨论】:

    【解决方案3】:

    我的朋友试试这个:

     If Not listBox1.Items.Contains(DB.DR.Item("naam")) Then
        ListBox1.Items.Add(DB.DR.Item("naam"))
        else
        'this item already exists.
        end if
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-15
      • 2019-03-13
      • 2013-01-23
      • 2019-01-26
      • 1970-01-01
      • 2012-02-29
      • 2012-02-16
      • 1970-01-01
      相关资源
      最近更新 更多