2015-08-04 2 views
0

У меня есть две поля со списком, и у меня есть две таблицы базы данных в sql-сервере. Имя первой таблицы - это провинция, а второе имя таблицы - это город, если я выбираю провинцию в моей первой combobox, а затем показываю все города против выбранной провинции показывают во втором поле со списком, когда мы нажимаем на раскрывающийся список combobox, поэтому PLZ помогите мне, как я могу это сделать в vb.net 2010Извлечь данные в combobox из sql-сервера и отношения ship btween 2 combx

ответ

0

Что у вас есть? Короче, вам нужно добавить событие SelectedIndexChanged или SelectionChangeCommitted в поле со списком провинций. Возьмите выделенную выписку из поля со списком провинций и используйте это, чтобы запросить таблицу городов и использовать результаты этого для заполнения списков городов.

Private Sub cboProvince_SelectionChangeCommitted(ByVal sender _ 
    As Object, ByVal e As EventArgs) Handles cboProvince.SelectionChangeCommitted 

' verify a something was selected 
    If cboProvince.selectedindex>-1 Then 
    FillCitiesCombo(cboProvince.selectedValue) 
    End If 
End Sub 

Private Sub FillCitiesCombo(Province As String) 
    dim tmpConn as new sqlconnection(connectionstring) 
    tmpConn.open 
    try 
    Dim sql as string("SELECT CITY FROM CITIES WHERE PROVINCE='" & Province.tostring & ";") 
    Dim adpt As New SQLDataAdapter(sql,tmpConn) 
    Dim dt as new datatable 
    adpt.fill(dt) 
    cboCities.DataSource=dt 
    cboCities.ValueMember="City" 
    cboCities.DisplayMember="City" 
    catch ex as exception 

    finally 
    tmpConn.Close 
    End try 
End Sub 

Это не самый эффективный метод. Чтобы предотвратить поездку в базу данных каждый раз, когда вы выбрали провинцию, вы можете сохранить все города в виде данных, а затем использовать dataview с RowFilter, чтобы заполнить поле со списком городов.

Смежные вопросы