我有一个数据库(使用Sqlite)的ID有一个主键与autoinc,加载到列表框控件的值。如果我正常地循环访问数据库,将数据库的值添加到我的列表框中,我不能通过使用SelectedIndex来获取ID,因为索引不总是与ID相同,并且ID不一定总是索引。 :(这让我很痛苦,当我想查询删除行,基于SelectedIndex。使用唯一ID循环?
我想通过ID删除行,但我没有办法获得该ID与我使用的循环(或做我?帮我把创意!),是否有我可以使用一些隐藏字段类型属性?
谢谢!
我有一个数据库(使用Sqlite)的ID有一个主键与autoinc,加载到列表框控件的值。如果我正常地循环访问数据库,将数据库的值添加到我的列表框中,我不能通过使用SelectedIndex来获取ID,因为索引不总是与ID相同,并且ID不一定总是索引。 :(这让我很痛苦,当我想查询删除行,基于SelectedIndex。使用唯一ID循环?
我想通过ID删除行,但我没有办法获得该ID与我使用的循环(或做我?帮我把创意!),是否有我可以使用一些隐藏字段类型属性?
谢谢!
如果要循环在一个列表框,你应该做这样的
Dim myBox As New ListBox
For Each item In myBox.Items
'do stuff with item
Next
确保在项目级别或课程级别有选项推断开
你永远不能依靠SelectIndex
奇偶校验与你的数据库;您应该使用SelectedValue
并使用您的数据库ID作为ListItem
值。
这取决于您将什么项目添加到列表框中。如果您只是添加纯字符串,则无法返回到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
我将如何获取,本身,项目ID和显示它?我很迷茫,因为我不是一个完全vb的智者,而是一个业余爱好者。我摆弄着你所提供的东西!不胜感激! – 2010-02-10 02:02:41
这取决于你如何从数据库中获得它。例如,如果您使用DataTable进行查询,则可以获取多个字段并将其读出:新项目(CInt(行[“ID”]),CString(行[“Name”])) – 2010-02-10 02:18:23
我正在使用Sqlite的SqlReader从数据库中获取它并将这些项插入到Listbox中。我正在寻找选定项目的ID和名称,但遇到问题。如果我只是告诉你我想要的是什么,这可能是最有意义的! txt_id.text = box.selecteditem(id) txt_name.text = box.selecteditem(name) – 2010-02-10 02:21:33
问题是没有意义的。 SelectedIndex是列表框的索引而不是包含的主键值。 – 2010-02-10 01:40:35
请务必指定winforms或web :) – 2010-02-10 01:40:57