我有一個數據庫(使用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