[英]Loop with Unique ID?
我有一个数据库(使用 SQLite),它的 ID 有一个带有 autoinc 的主键,它将值加载到列表框控件中。 如果我正常循环遍历数据库,将数据库的值添加到我的列表框中,我无法使用SelectedIndex
获取ID
,因为Index
并不总是与ID
相同, ID
也不会总是Index
. 当我想根据SelectedIndex
查询删除行时,这会很痛苦。
我想按ID
删除该行,但我无法通过我使用的循环获取该ID
(或者我可以吗?帮助我发挥创意!)。 是否有一些我可以使用的隐藏字段类型属性?
这取决于您将什么作为项目添加到列表框中。 如果您只是添加纯字符串,则无法返回 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
如果你想在列表框中循环,你应该这样做
Dim myBox As New ListBox
For Each item In myBox.Items
'do stuff with item
Next
确保在项目级别或类级别有选项infer ON
您永远不能依赖SelectIndex
对您的数据库进行奇偶校验; 您应该使用SelectedValue
并将您的数据库 ID 用作ListItem
值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.