2013-09-11 2 views
-1

Так что я могу заполнить выпадающий я иду в Visual Studio только, как я хочу со всеми результатами со следующим:LIMITING мой результат установлен в VB

Dim pnum As New List(Of String) 
     For Each polnumber As InsuredDataSet.Claims_InsuredRow In Me.InsuredDataSet.Claims_Insured 
     pnum.Add(polnumber.Policy_Number)  
     Next 
     pnum.Reverse() 

     Me.Policy_NumberComboBox.DataSource = pnum 

Высокими. Теперь я хочу ограничить pnum, взяв то, что было введено/выбрано из Insured_NameTextBox в форме и только возвращает Policy_Number с соответствующим именем Insured_Name. Я полагаю, это может быть выполнено с помощью оператора If, но все, что я пытаюсь (stringcompare, InsuredName_TextBox = Me.InsuredDataSet.ClaimsInsured и т. Д.) Либо не ограничивает результаты, ни ограничивает результаты полностью, поэтому ничего не появляется. Любая идея, где поставить инструкцию If и что следует сравнивать?

UPDATE: Я думаю, что есть некоторая путаница, так что я в том числе весь суб нагрузки ниже:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     'TODO: This line of code loads data into the 'IncidentsDataSet.Claims_Incidents' table. You can move, or remove it, as needed. 
     Me.Claims_IncidentsTableAdapter.Fill(Me.IncidentsDataSet.Claims_Incidents) 
     'TODO: This line of code loads data into the 'InsuredDataSet.Claims_Insured' table. You can move, or remove it, as needed. 
     Me.Claims_InsuredTableAdapter.Fill(Me.InsuredDataSet.Claims_Insured) 
     'textbox autocomplete mode 
     Dim Iname As New AutoCompleteStringCollection() 
     For Each insname As InsuredDataSet.Claims_InsuredRow In Me.InsuredDataSet.Claims_Insured 
      Iname.Add(insname.Insured_Name) 
     Next 

     Me.Insured_NameTextBox.AutoCompleteCustomSource = Iname 

     'combobox autocomplete code (now sorting by last included!) 
     Dim pnum As New List(Of String) 
     For Each polnumber As InsuredDataSet.Claims_InsuredRow In Me.InsuredDataSet.Claims_Insured 
      pnum.Add(polnumber.Policy_Number) 
     Next 
     pnum.Reverse() 

     Me.Policy_NumberComboBox.DataSource = pnum 

    End Sub 
+0

Что именно Insured_NameTextBox? Многострочный текстовый блок? – varocarbas

+0

Insured_NameTextBox - это текстовое поле, которое имеет собственную настройку автозаполнения, выполняющую режим полного набора предложений. Он не установлен как многострочный текстовый блок. – SQLHound

+0

Вопрос такой: он многострочный или однострочный. То есть, сколько имен должно содержать? – varocarbas

ответ

2

попробовать что-то вроде этого:

Me.Policy_NumberComboBox.DataSource = InsuredDataSet.Claims_Insured.Where(Function(r) r.Insured_Name = Insured_NameTextBox.Text).Select(Function(r) r.Policy_Number).Reverse() 

Мы приближаясь. Основываясь на обновлении вашего вопроса, вы запускаете этот код при загрузке формы. Однако в том месте, где загружается форма, ваше текстовое поле всегда будет пустым. Что вы делаете, когда изменяется значение в текстовом поле, чтобы повторно фильтровать ваши данные?

+0

Ваш код обеспечивает то же самое, что и основные условия, о которых говорит OP, которые не работают. Кроме того, вы не знаете, что такое Insured_NameTextBox.Text; если это многострочное текстовое поле (по одному имени в строке), ваш код не будет работать. – varocarbas

+0

Я предположил однострочный текстовый файл, но в остальном он добавляет сравнение, которое его образец отсутствовал. Это здесь как отправная точка: надеюсь, что op будет комментировать и лучше объяснить, как это не удается, и это даст информацию, необходимую для завершения решения. –

+0

Я включил ваш код (комментируя мой собственный сверху), и я запустил его, я введу Insured_Name в текстовое поле, а итоговое значение combobox получило ALL Policy_Numbers в обычном порядке по возрастанию. Должен ли я встроить эту строку в инструкцию For Each? – SQLHound

1

Это C#

Me.InsuredDataSet.Claims_Insured.Where(x => x.Insured_Name == Insured_NameTextBox.Text); 
+0

То же самое, что я сказал Джоэлю Кохорну: вы не можете быть уверены, что обращаетесь к заданной проблеме, прежде чем знать, что такое Insured_NameTextBox. – varocarbas

+0

@varocarbas Нет, не то же самое. См. Insured_Name not ClaimsInsured – Paparazzi

+0

Я думаю, что ваши оба ответа идентичны, но я имел в виду, что вы предполагаете, что «Insured_NameTextBox» до того, как OP объяснил это. В случае многострочного текстового поля с разными именами, ваше решение не будет работать. – varocarbas