我如何使用 vb.net 的 my.settings 名称和值进行 for 循环?
How can i do a for loop with vb.net's my.settings name and value?
我需要一些帮助,我已经尝试在 google 上搜索并尝试在这里搜索但没有成功。
到目前为止我尝试过的是:-
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 试图告诉我的意思。我认为这是正确的。
我认为你的第 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 行
有点免责声明,我不熟悉 how/when 加载设置并填充 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 只是一个空值,我将其放入设置中以供调用。希望这有帮助
有些存储区不知道从哪里开始到哪里结束!当您将光标移到顶部时,它会向上移动,直到用完记录并在光标正下方的第一条记录处停止。您的第一个命令必须向下才能到达第一条记录。
如果要查找不区分大小写的查找,您可以这样做:
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
我需要一些帮助,我已经尝试在 google 上搜索并尝试在这里搜索但没有成功。
到目前为止我尝试过的是:-
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
我想要做的是能够遍历 my.settings 中的变量名称,然后获取其值并将其与 SQL 查找进行比较。我唯一挣扎的是遍历 my.settings.
EDIT1:上面已经回答了,但是出现图片错误,代码写错了吗?不确定我是否理解 vb.net 试图告诉我的意思。我认为这是正确的。
我认为你的第 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 行
有点免责声明,我不熟悉 how/when 加载设置并填充 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 只是一个空值,我将其放入设置中以供调用。希望这有帮助
有些存储区不知道从哪里开始到哪里结束!当您将光标移到顶部时,它会向上移动,直到用完记录并在光标正下方的第一条记录处停止。您的第一个命令必须向下才能到达第一条记录。
如果要查找不区分大小写的查找,您可以这样做:
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