0

我想要一些帮助,我尝试在谷歌上搜索并尝试在这里搜索但没有运气。

到目前为止,我尝试过的是以下内容:-

For Each value As Configuration.SettingsPropertyValue In My.Settings.PropertyValues

    Dim myrecord As String = My.Settings.PropertyValues.ToString

    sql_all_matching_records = String.Format("")

Next

在此处输入图像描述 但是当我在调试器模式下运行并在 for 循环中放置一个断点时,这只会被跳过。

我想要做的是能够遍历 my.settings 中的变量名,然后获取它的值并将其与 SQL 查找进行比较。我唯一苦苦挣扎的是循环通过 my.settings。

EDIT1:上面已经回答了,但是得到图片中的错误,是不是写错了代码?不确定我是否理解 vb.net 试图告诉我的内容。我认为这是正确的。

4

4 回答 4

2

有点免责声明,我不熟悉如何/何时加载设置以及填充 PropertyValues 集合,但在访问设置值之前它似乎不包含任何内容。这是一个奇怪的解决方法,但在遍历集合之前从设置中获取一个值似乎可以填充它。您的 InvalidCast 异常发生是因为您尝试设置 myrecord = a collection.tostring。我们已经知道集合有多个值,因为我们正在迭代它们,所以我们不能只调用 .tostring 。这就像说 Array.ToString(),只是不能那样工作。我认为您真正要寻找的是 value.PropertyValue.ToString,它将保存您想要获取的设置值。应用这两项更改后,您将获得以下信息:

    Dim dummy As String = My.Settings.dummySetting
    For Each value As System.Configuration.SettingsPropertyValue In My.Settings.PropertyValues

        'Dim myrecord As String = My.Settings.PropertyValues.ToString
        Dim myrecord As String = value.PropertyValue.ToString

        sql_all_matching_records = String.Format("")
    Next

dummySetting 只是我在设置中调用的一个空值。希望这可以帮助

于 2017-07-29T19:13:47.103 回答
0

我认为您的第 2 行是错误的...

For Each value As Configuration.SettingsPropertyValue In My.Settings.PropertyValues

    Dim myrecord As String = value.ToString

    sql_all_matching_records = String.Format("")

Next

我没有尝试过您的代码,但我认为您在第 3 行中所做的是获取每个设置的所有属性并将它们连接成一个。

编辑指向正确的线 #2 而不是 #3

于 2017-07-28T20:33:29.150 回答
0

一些存储区域不知道它们从哪里开始或结束!当您将光标发送到顶部时,它会向上移动,直到用完记录并在光标下方的第一条记录处停止。您的第一个命令必须关闭才能到达第一条记录。

于 2018-10-26T22:58:40.270 回答
0

如果要查找不区分大小写的查找,您可以执行以下操作:

        For Each AProperty As Configuration.SettingsPropertyValue In My.Settings.PropertyValues
            If AProperty.Name.ToLower = ("ExPectedName").ToLower Then
                ReturnValue = AProperty.PropertyValue
                Exit For
            End If
        Next
于 2019-10-30T17:46:54.903 回答