循环具有唯一ID?

时间:2010-02-10 01:36:59

标签: vb.net vb6

我有一个数据库(使用Sqlite),其ID具有autoinc的主键,它将值加载到列表框控件中。如果我正常循环数据库,将数据库的值添加到我的列表框中,我无法通过使用SelectedIndex获取ID,因为索引不会始终与ID相同,并且ID不会始终是索引。 :(当我想根据SelectedIndex查询删除行时,这会很痛苦。

我想按ID删除行,但我无法使用我使用的循环获取该ID(或者我可以帮助我获得创意!)。我可以使用一些隐藏的字段类型属性吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

这取决于您作为项目添加到列表框中的内容。如果您只是添加纯字符串,则无法返回ID。您需要的是一个包含ID和您想要显示的值的类。您可以通过重写ToString方法来显示该值。我的VB有点生疏,但这是一个伪示例:

Class Item
    Property ID as Integer
    Property Name as String

    Sub New(ID as Integer, Name as String)
        Me.ID = ID
        Me.Name = Name
    End Sub

    Overrides Function ToString() as String
        Return Name
    End Function
End Class

使用课程:

Box.Items.Add(new Item(ID, Name))
For Each Item as Item in Box.Items
    Delete(Item.ID)
End For

答案 1 :(得分:0)

如果你想在列表框中循环,你应该这样做

    Dim myBox As New ListBox
    For Each item In myBox.Items
        'do stuff with item
    Next

确保在项目级别或班级级别选项推断

答案 2 :(得分:0)

您永远不能依赖SelectIndex与您的数据库奇偶校验;您应该使用SelectedValue并将数据库ID用作ListItem值。