我有一个数据库(使用Sqlite),其ID具有autoinc的主键,它将值加载到列表框控件中。如果我正常循环数据库,将数据库的值添加到我的列表框中,我无法通过使用SelectedIndex获取ID,因为索引不会始终与ID相同,并且ID不会始终是索引。 :(当我想根据SelectedIndex查询删除行时,这会很痛苦。
我想按ID删除行,但我无法使用我使用的循环获取该ID(或者我可以帮助我获得创意!)。我可以使用一些隐藏的字段类型属性吗?
谢谢!
答案 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
值。