1

我正在使用 vb.net 我有一个列表框名称 LSTlocations ..我可以从该列表框中选择多个位置..我正在将特定位置的 id 获取到一个列表变量..所以我给出了这样的代码:

 cnt = LSTlocations.SelectedItems.Count

    Dim strname As String
    If cnt > 0 Then
        For i = 0 To cnt - 1
            Dim locationanme As String = LSTlocations.SelectedItems(i).ToString
            Dim locid As Integer = RecordID("Locid", "Location_tbl", "LocName", locationanme)
            Dim list As New List(Of Integer)
            list.Add(locid)

        Next 
    End If

但我没有在我的列表变量中获取我所有选定的位置 ID。我如何从我的列表框中获取所有选定的位置 ID 以列出变量

4

1 回答 1

1

在循环选定的项目时,您初始化应该存储 id 的整数。
在每个循环中,列表都是新的和空的,然后添加新的 locid,但在后续循环中将其丢失。

所以你最终只得到列表中的最后一个整数

简单地说,将列表的声明和初始化移到循环外

Dim strname As String
Dim list As New List(Of Integer)

cnt = LSTlocations.SelectedItems.Count
For i = 0 To cnt - 1
    Dim locationanme As String = LSTlocations.SelectedItems(i).ToString
    ' for debug
    ' MessageBox.Show("Counter=" & i & " value=" & locationanme)
    Dim locid As Integer = RecordID("Locid", "Location_tbl", "LocName", locationanme)
    ' for debug
    ' MessageBox.Show("ID=" & locid)
    list.Add(locid)
Next 
Console.WriteLine(list.Count)

For Each num in list
    MessageBox.Show("LocID:" & num)
于 2013-10-17T15:49:45.760 回答