Izzy Decorte Ответов: 2

Как мне получить набор данных в datagridview VB.NET


Я пытаюсь заполнить datagridview данными.

комментируемые строки-это то, что я пробовал, но не получаю результатов...
можете ли вы мне помочь (я новичок : первый таймер, делающий этот тип кодирования)

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

my current code is this: 
<pre>Imports System.Data
Imports System.Data.OleDb
Public Class Dossiers
    Private DossierDataset As DataSet = New DataSet()
    Private Sub Dossiers_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim connString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\GoogleDrive\EINDWERK VBNET\PatientenDatabase.accdb"
        Using con As OleDbConnection = New OleDbConnection(connString)
            con.Open()
            Dim cmd As OleDbCommand = New OleDbCommand
            cmd.Connection = con
            cmd.CommandText = "SELECT          tbl_Dossiers.Dos_ID, tbl_Relaties.Rel_Naam, tbl_Relaties.Rel_Voornaam, tbl_Onderzoekstypes.OZ_TypeOnderzoek, tbl_Diagnoses.Diag_Type
                               FROM            ((((tbl_Dossiers 
                               LEFT OUTER JOIN tbl_DossRelatie ON tbl_Dossiers.Dos_ID = tbl_DossRelatie.DR_DossID) 
                               LEFT OUTER JOIN tbl_Relaties ON tbl_DossRelatie.DR_RelID = tbl_Relaties.Rel_ID) 
                               LEFT OUTER JOIN tbl_OnderzoeksTypes ON tbl_Dossiers.OZ_ID = tbl_OnderzoeksTypes.OZ_ID) 
                               LEFT OUTER JOIN tbl_Diagnoses ON tbl_Dossiers.Diag_ID = tbl_Diagnoses.Diag_ID)
                               ORDER BY        tbl_Dossiers.Dos_ID"
            Dim adpt As OleDbDataAdapter = New OleDbDataAdapter(cmd)
            adpt.Fill(DossierDataset)
            dgvDossiers.DataSource = DossierDataset.Tables

        End Using
        'dgvDossiers.DataSource = Me.DossierDataset
        'dgvDossiers.AutoGenerateColumns = True
        'dgvDossiers.DataSource = DossierDataset
        'dgvDossiers.DataMember = "tbl_Dossier"
    End Sub
    'Private Sub BindData()
    'With dgvDossiers
    '.AutoGenerateColumns = True
    '.DataSource = DossierDataset
    '.DataMember = "Dos_ID"
    'End With
    'End Sub

2 Ответов

Рейтинг:
9

Izzy Decorte

нашел!
в принципе, я приложил слишком много усилий в самом datagridview в форме.
Поскольку я сделал так, чтобы это выглядело так, как я хотел, я изменил данные, которые были критически важны для загрузки
правильный код:

Private Sub Dossiers_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim str As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\GoogleDrive\EINDWERK VBNET\PatientenDatabase.accdb"
        Dim con As New OleDbConnection(str)
        Dim com As String = "Select          tbl_Dossiers.Dos_ID, tbl_Relaties.Rel_Naam, tbl_Relaties.Rel_Voornaam, tbl_Onderzoekstypes.OZ_TypeOnderzoek, tbl_Diagnoses.Diag_Type
                               FROM((((tbl_Dossiers 
                               Left OUTER JOIN tbl_DossRelatie ON tbl_Dossiers.Dos_ID = tbl_DossRelatie.DR_DossID) 
                               Left OUTER JOIN tbl_Relaties ON tbl_DossRelatie.DR_RelID = tbl_Relaties.Rel_ID) 
                               Left OUTER JOIN tbl_OnderzoeksTypes ON tbl_Dossiers.OZ_ID = tbl_OnderzoeksTypes.OZ_ID) 
                               Left OUTER JOIN tbl_Diagnoses ON tbl_Dossiers.Diag_ID = tbl_Diagnoses.Diag_ID)
                               ORDER BY        tbl_Dossiers.Dos_ID"
        Dim adpt As New OleDbDataAdapter(com, con)
        Dim dossierset As New DataSet()
        adpt.Fill(dossierset, "Dos_ID")
        dgvDossiers.DataSource = dossierset.Tables(0)
        dgvDossiers.Show()

    End Sub


спасибо за помощь!


RickZeeland

Я знал, что ты сможешь это сделать! Я никогда не использую DataAdapters, так что, к сожалению, не могу помочь в этом вопросе.

Izzy Decorte

@RickZeeland: во всяком случае ,спасибо за проверку, (0) помогло, хотя я до сих пор не знаю, почему (очень плохо в этом разбираюсь)...
Сейчас я работаю над своей следующей проблемой, кнопка "Добавить новое досье" открывает новую форму, где я могу создать новое досье... вероятно, вам тоже понадобится помощь, вы увидите это, когда это произойдет, ха-ха.

Рейтинг:
2

RickZeeland

Попробовать это:

dgvDossiers.DataSource = DossierDataset.Tables(0)


Izzy Decorte

Привет, Рикзиленд. Я добавил (0), как описано выше, но все равно не получу никаких данных в списке. Спасибо за помощь!

RickZeeland

Облом, может быть, вы можете попробовать установить точку останова и навести курсор мыши на DossierDataset, чтобы увидеть, содержит ли он что-нибудь, удачи!

Izzy Decorte

Там просто написано dgvDossiers [System.windows.forms.datagridview]
если я открою стрелку для получения дополнительной информации, я получу информацию datagridview, например "allowusertoaddrows" = true и т. д.

RickZeeland

И можете ли вы увидеть что-нибудь в досье dossierdataset ?
Если нет, то ваша connectionstring может быть неправильной, например.

Izzy Decorte

Если я проверяю запрос, то получаю фактическую обратную связь в de query designer, connectionstring-это та же самая строка, которую я использую везде (копия вставлена)