我想要一些帮助,我已经尝试在谷歌搜索并尝试在这里搜索没有运气。
到目前为止我所尝试的是以下内容: -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:ABOVE已被回答,但是如果得到图片中的错误,那么代码写错了吗?不知道我明白vb.net试图告诉我什么。我认为这是正确的。
答案 0 :(得分:2)
有点免责声明,我不熟悉如何/何时加载设置以及PropertyValues集合被填充,但在访问设置值之前似乎没有任何东西。这是一个奇怪的解决方法,但在循环收集之前从设置中获取值似乎填补了它。发生InvalidCast异常是因为您尝试设置myrecord = 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只是一个空值,我将其置于要调用的设置中。希望这有帮助
答案 1 :(得分: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
答案 2 :(得分:0)
某些存储区不知道它们的开始或结束位置!当您将光标移到顶部时,它会向上移动,直到记录用完,并停止在光标下方的第一条记录为止。您的第一个命令必须关闭才能到达第一条记录。
答案 3 :(得分: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