Member 12825053 Ответов: 2

Получение значений из любой строки в источнике привязки


В моем проекте vb 2010 у меня есть Combobox, в который я загружаю данные с помощью BindingSource, например ..

Private Sub CreditorN_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles CreditorN.GotFocus            
Dim SqlAdapt As SqlDataAdapter            
Dim SqlDs As DataSet            
SqlAdapt = New SqlDataAdapter("Select CreditorN, CreditorID from Creditors", myConnection)            
SqlDs = New DataSet            
SqlAdapt.Fill(SqlDs, "CreditorsList")            
BindingSource1.DataSource = SqlDs.Tables(0)            
CreditorN.DataSource = BindingSource1            
CreditorN.DisplayMember = "CreditorN"        
End Sub


Что я уже пробовал:

Now, what I want to do is when I select the CreditorN from the combobox, I want to get the corresponding ID in the BindingSource. Because based on what is selected, I perform another query. And can't use the selected name some customers have the same names.
In datagridview I use


<pre lang="vb">Dim selectedrowindex as integer    
Dim selectedrow as datagridviewrow        
Selectedrowindex = CreditorsList.SelectedCell(0).rowindex    
Selectedrow = creditorsList.rows(selectedrowindex)




Из этого я могу получить любую ячейку в строке, на которую я нажимаю в datagridview. 
Но я не знаю, как справиться с этим для combobox и BindingSource

2 Ответов

Рейтинг:
2

Maciej Los

Вам нужно установить ValueMember[^] тогда вы сможете прочитать его через Элемент[^] или SelectedValue Смотрите здесь разницу: ComboBox SelectedItem, SelectedValue, SelectedWhat??? – jaredpar в блог[^]


Рейтинг:
0

Ashutosh Gpt

Создайте один клиентский класс для заполнения всей информации, поступающей из БД

SqlAdapt = New SqlDataAdapter("Select CreditorN, CreditorID from Creditors", myConnection)
заполните эту информацию в объекте на стороне клиента(называемом фиктивным) , имеющем эти три свойства, и используйте его для привязки к источнику данных
класс манекен
{
Список<кредиторов> кредиторов;
}

SqlAdapt.Fill(SqlDs, "CreditorsList")            
BindingSource1.DataSource = dummy            
CreditorN.DataSource = BindingSource1            
CreditorN.DisplayMember = "CreditorN"


CreditorID = get the CreditorID from dummy list contains list of Creditors with using selectedItem. i.e. Dummy.Creditors where CreditorItem.CreditoN == selectItem.DisplayName