В настоящее время у меня есть 3 поля со списком в моей форме с привязкой к данным, которая позволяет пользователю выбирать конкретное c местоположение элемента в зависимости от его «родительского» выбора.
Each combobox is databound using the following (Except the selected value which does change dependent upon its BindingSource)
введите описание изображения здесь
Следующий код снова немного отличается в зависимости от поля со списком, но все следуют аналогичной структуре кода.
Private Sub cboLocationArea_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboLocationArea.SelectedIndexChanged
'Clear child comboboxes and refill with parametered Query
cboLocationBay.SelectedIndex = -1
cboLocationRack.SelectedIndex = -1
Me.LocationBayTableAdapter.FillByAreaID(Me.ManufacturingDatabaseDataSet.LocationBay, cboLocationArea.SelectedValue)
'Load picture box from combobox selection
If cboLocationArea.SelectedValue > 0 Then
Dim imageSQL As New SQLControl
imageSQL.AddParam("@SelectedValue", cboLocationArea.SelectedValue)
imageSQL.ExecQuery("SELECT * FROM [LocationArea] WHERE [ID] = @SelectedValue")
If imageSQL.HasException(True) Then Exit Sub
For Each r As DataRow In imageSQL.DBDT.Rows
Try
imgArea.Load(r("Image").ToString())
Catch ex As Exception
imgArea.Image = Nothing
End Try
Next
End If
onDirty = True
End Sub
TableAdapter, назначенный полю со списком, принимает параметр который снова отфильтрует результаты, используя свой "родительский" выбор поля со списком;
SELECT ID, Name, Image, LocationAreaID FROM dbo.LocationBay
WHERE LocationAreaID = @LocationAreaID
Однако всякий раз, когда я сохраняю изменения в этой форме, все обновляется, как ожидалось, но результаты в этих списках опускаются, что заставляет меня думать, что это возможно из-за этих параметризованных запросов? Как сохранить эту функциональность при ожидаемом сохранении данных?