Связывание двух DGV, заполненных данными из связанных таблиц - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

В общем задача такая, есть форма с двумя datagridview в splitcontainer-е. Datagridview заполняются из базы Access из двух связанных таблиц. И... в общем ничего не получается, datagridview пустые. Первоначально пробовал раздельно заполнять datagridview и для меня стало полной неожиданностью, что нельзя отдельно работать с datagridview. Попробовал как на MSDN описано. Прилагаю код. Соединение,DataSet и DataTable описаны и созданы заранее. В чем ошибка?
Листинг программы
  1. Sub DGVfillMat()
  2. Dim strQuery As String ' строка запроса
  3. Dim qSQL As OleDbCommand ' запрос
  4. Dim DA As OleDbDataAdapter ' обработчик запросов
  5. Dim BS As New BindingSource ' соеденитель datatable и datagrid
  6. Dim strQuery2 As String
  7. Dim qSQL2 As OleDbCommand
  8. Dim DA2 As OleDbDataAdapter
  9. Dim BS2 As New BindingSource
  10. strQuery = "SELECT * FROM SetMat ORDER BY [_Name] ASC"
  11. strQuery2 = "SELECT * FROM SetMatSelect ORDER BY [_Name] ASC"
  12. CN.ConnectionString = strConnect ' назначаем строку соединения
  13. qSQL = New OleDbCommand(strQuery, CN)
  14. qSQL2 = New OleDbCommand(strQuery2, CN) ' создаем запрос
  15. Try
  16. DT_SetMat.Reset()
  17. DT_SetMatSel.Reset() ' предварительно очищаем кэш таблицы
  18. CN.Open() ' открываем соединение
  19. qSQL.ExecuteNonQuery()
  20. qSQL2.ExecuteNonQuery() ' выполняем запрос
  21. Catch ex As Exception ' если ошибка
  22. MsgBox("Ошибка загрузки данных в таблицу!", MsgBoxStyle.Critical)
  23. Exit Sub
  24. Finally
  25. CN.Close() ' закрываем соединение
  26. End Try
  27. DA = New OleDbDataAdapter(qSQL)
  28. DA2 = New OleDbDataAdapter(qSQL2) ' получаем результат запроса
  29. DA.Fill(DS, "SetMat")
  30. DA2.Fill(DS, "SetMatSelect") ' отправляем результат в dataset
  31. ' создаем связь
  32. Dim relation As New DataRelation("DR", DT_SetMat.Columns(0), DT_SetMatSel.Columns(0))
  33. DS.Relations.Add(relation)
  34. DT_SetMat = DS.Tables("SetMat")
  35. DT_SetMatSel = DS.Tables("SetMatSelect")
  36. BS.DataSource = DS
  37. BS2.DataSource = DS ' связываем соеденитель с таблицей
  38. Me.DGV_Mat.DataSource = BS
  39. Me.DGV_SelMat.DataSource = BS2 ' связываем соеденитель с datagrid
  40. Me.DGV_Mat.DataMember = "SetMat"
  41. Me.DGV_SelMat.DataMember = "SetMatSelect"
  42. End Sub

Решение задачи: «Связывание двух DGV, заполненных данными из связанных таблиц»

textual
Листинг программы
  1. "SELECT * FROM SetMat ORDER BY [_Name] ASC"

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут