Как найти набор результатов из набора результатов - PullRequest
2 голосов
/ 26 апреля 2020

У меня проблема с поиском результата из набора результатов.

Я ищу заказ на основе идентификатора клиента и сохраняю в rs, затем я хочу найти платеж на основе идентификатора заказа из rs и сохраняю в rs2.

Этот rs2 будет связываться в datagridview.

Но я обнаружил, что rs2 будет переназначать предыдущие данные, как только будут найдены новые данные, поэтому в конечном результате всегда отображается один результат, который является последним найденным результатом. Я пытаюсь использовать Stati c rs2, но он все еще не работает.

Надеюсь, что какой-то эксперт сможет найти решение. Спасибо.

Private Sub BindCard()
  Dim name As String = cboCreditType.Text
  Dim db As New ConcertDataContext()

  Dim rs = From o In db.orders Where (o.customer_id = MemberLogin.id)

  Dim allOrders = From id In rs Select id.order_id

  Dim rs2 = From o In db.payments
            Where (name = "All" Or o.creditType = name) And
                  allOrders.Contains(o.order_id)
            Select o.payment_id, o.total_payment, o.creditNumber, o.creditType, o.order_id

  dgv.DataSource = rs2 'Error occurs here'
End Sub

1 Ответ

2 голосов
/ 26 апреля 2020

Вы правильно определили проблему в своем коде, решение довольно простое.

Удалите l oop, извлеките список orderid для обработки и затем используйте этот список как условие с Contains против данные платежей

' First extract a list of all orders ID present in the orders selected
Dim allOrders = from id in rs select id.orderid

' Then use that list and select only the payments for those orders
rs2 = From o In db.payments 
        Where (name = "All" Or o.creditType = name) And 
        (allOrders.Contains(o.order_id))
              Select o.payment_id, o.total_payment, o.creditNumber, o.creditType, o.order_id

Если вам не нужны все данные в rs, тогда вы можете заменить исходный запрос на

Dim allOrders = From o In db.orders 
                  Where (o.customer_id = MemberLogin.id)
                  Select o.order_Id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...