0

如果可能,我正在尝试动态创建变量。

我有一个包含复选框的列表框。用户从中选择项目,然后将选择添加到数据库中。他们可以从列表中选择任意数量的项目 (1-7)。我已经遍历选定的项目并将它们添加到数组列表中。

我现在想将每个选定的项目存储在要添加到数据库中的不同变量中。这个想法是只使用一个预期 7 个条目的插入语句。如果用户只选择说 2 个项目,则插入这些项目以及 5 个空字符串。

    Dim part1 As String = ""
    Dim part2 As String = ""
    Dim part3 As String = ""
    Dim part4 As String = ""
    Dim part5 As String = ""
    Dim part6 As String = ""
    Dim part7 As String = ""

    'add selected items to an array
    For i = 0 To listPart.CheckedItems.Count - 1
        selected.Add(listPart.CheckedItems(i).Text)
    Next

我想做类似的事情:

    For j = 0 To selected.Count
        part+j = selected(j)
    Next

这样,如果用户没有选择所有 7 个项目,我应该让变量保持空字符串

4

2 回答 2

2

我不认为可以创建或需要创建动态变量。

ArrayList、Array、List 和 Collection 等对象支持添加项目(类似于您描述添加动态变量的方式)

如果您希望为列表视图中的每个项目添加一个数据库条目,您可以只循环遍历列表视图

 For item as ListViewItem in listPart.Items
     'Save item.Text
 Next item
于 2012-12-05T16:40:04.033 回答
1

您可以通过反射来做到这一点,但这是不可取的。它很难调试,也很难实现,并且可能会导致访问限制的问题。

http://msdn.microsoft.com/en-us/library/6z33zd7h.aspx

System.Reflection.FieldInfo FI = T.GetField("part" & j);
FI.SetValue({your class name here},selected(j));
于 2012-12-05T16:40:51.860 回答