Как я могу сделать цикл с именем и значением my.settings vb.net?
Я хотел бы помочь с этим, я попытался поиск в 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.
РЕДАКТИРОВАТЬ1: ВЫШЕ ответили, однако получая ошибку на картинке, написали ли код неправильно? не уверен, что я понимаю, что vb.net пытается сказать мне. я думал, что это правильно.
3 ответа
Немного отговорки, я не знаком с тем, как / когда загружаются настройки и заполняется коллекция PropertyValues, но кажется, что она не содержит ничего, пока не получат доступ к значению настроек. Это странный обходной путь, но захват значения из настроек перед циклом просмотра коллекции, кажется, заполняет его. Исключение InvalidCast возникает из-за того, что вы пытаетесь установить myrecord = a collection.tostring. Мы уже знаем, что коллекция имеет несколько значений, потому что мы их перебираем, поэтому мы не можем просто вызвать.tostring для нее. Это все равно что сказать Array.ToString(), просто так не работает. Я думаю, что вы на самом деле ищете значение.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 - это просто пустое значение, которое я ввел в настройках для вызова. Надеюсь это поможет
Я думаю, что ваша строка № 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
Некоторые складские помещения не знают, где они начинаются или заканчиваются! Когда вы отправляете курсор наверх, он перемещается вверх, пока у него не закончатся записи, и остановится с первой записью чуть ниже курсора. Ваша первая команда должна быть недоступна, чтобы достичь первой записи.
Если вы ищете поиск без учета регистра, вы можете сделать что-то вроде этого:
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