简体   繁体   中英

dataadapter fill not working

i'm having a problem where my dataadapter dont fill my datatable with anything(not even the columns) can someone give me a help here?

The code i'm using:

        'Fill DatagridView
        Dim datagridView1 As New System.Windows.Forms.DataGridView
        Dim vDate As String = Van.Date.Year & "-" & Van.Date.Month & "-" & Van.Date.Day
        Dim tDate As String = Tot.Date.Year & "-" & Tot.Date.Month & "-" & Tot.Date.Day

        Dim tblKasStaat As New System.Data.DataTable
        Dim sqlQuery As String = "Select Valuta, Datum, Periode, Kasnr, BeginSaldo, EindSaldo, Grootboeknummer, bedragExBTW, DebetCredit, Omschrijving, Bonnummer, BTWcode, Transactiedatum From(Select KasStaat.Valuta as Valuta, KasStaatRegels.Datum as Datum, KasStaat.Periode as Periode,  KasStaat.ID as Kasnr, KasStaat.BeginSaldo as BeginSaldo, KasStaat.EindSaldo, KasboekRekening.Naam as Grootboeknummer, KasStaatRegels.Bedrag_ExclBTW as bedragExBTW, KasStaatRegels.DebetOfCredit as DebetCredit, KasStaatRegels.Omschrijving as Omschrijving, KasStaatRegels.Bonnummer as Bonnummer, KasStaatregels.BTWCode as BTWcode, KasStaatRegels.TransactieDatum as TransactieDatum from KasStaat left join KasStaatRegels ON KasStaat.ID = KasStaatRegels.KasStaatID left join Kasboekrekening ON KasStaatRegels.KasboekRekeningID = KasboekRekening.ID Where kasStaatRegels.Datum >= '" & vDate & "' and kasStaatRegels.Datum <= '" & tDate & "')tmp"

        Using conn As New System.Data.OleDb.OleDbConnection(strNewConnString)
            conn.Open()
            Dim adpKasStaat As New System.Data.OleDb.OleDbDataAdapter(sqlQuery, conn)
            adpKasStaat.Fill(tblKasStaat)

            datagridView1.DataSource = tblKasStaat
            conn.Close()
        End Using

        'verfying the datagridview having data or not
        If ((datagridView1.Columns.Count = 0) Or (datagridView1.Rows.Count = 0)) Then
            Exit Sub
        End If

The problem here is everytime i check for column count and row count is always 0. The same query with the same date range return data on sql directly.

Problem solved by adding a DatagridView on my usercontrol and then passing it as parameter to my export function. Below the code:

Usercontrol forms namespace:

xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"

The datagridView itself:

<WindowsFormsHost Name="wfhDGV" Visibility="Collapsed">
    <wf:DataGridView AutoGenerateColumns="True" x:Name="dgv1" />
</WindowsFormsHost>

And then the code for the button:

Private Sub btnExport_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles btnExport.Click
    Try

        Dim vm As vmKasStaat = Me.DataContext
        If vm Is Nothing Then Exit Sub

        If vm.isCSVchecked Then
            Dim vDate As String = ""
            Dim tDate As String = ""
            If vm.isDatumChecked Then
                vDate = vm.SelectedKasStaatDate.Date.Year & "-" & vm.SelectedKasStaatDate.Date.Month & "-" & vm.SelectedKasStaatDate.Date.Day
                tDate = vm.SelectedKasStaatDate.Date.Year & "-" & vm.SelectedKasStaatDate.Date.Month & "-" & vm.SelectedKasStaatDate.Date.Day
            Else
                vDate = vm.SelectedVanDate.Date.Year & "-" & vm.SelectedVanDate.Date.Month & "-" & vm.SelectedVanDate.Date.Day
                tDate = vm.SelectedTotDate.Date.Year & "-" & vm.SelectedTotDate.Date.Month & "-" & vm.SelectedTotDate.Date.Day
            End If
            Dim query As String = "Select Valuta, Datum, Periode, Kasnr, BeginSaldo, EindSaldo, Grootboeknummer, bedragExBTW, DebetCredit, Omschrijving, Bonnummer, BTWcode, Transactiedatum From(Select KasStaat.Valuta as Valuta, KasStaatRegels.Datum as Datum, KasStaat.Periode as Periode,  KasStaat.ID as Kasnr, KasStaat.BeginSaldo as BeginSaldo, KasStaat.EindSaldo, KasboekRekening.Naam as Grootboeknummer, KasStaatRegels.Bedrag_ExclBTW as bedragExBTW, KasStaatRegels.DebetOfCredit as DebetCredit, KasStaatRegels.Omschrijving as Omschrijving, KasStaatRegels.Bonnummer as Bonnummer, KasStaatregels.BTWCode as BTWcode, KasStaatRegels.TransactieDatum as TransactieDatum from KasStaat left join KasStaatRegels ON KasStaat.ID = KasStaatRegels.KasStaatID left join Kasboekrekening ON KasStaatRegels.KasboekRekeningID = KasboekRekening.ID Where kasStaatRegels.Datum >= '" & vDate & "' and kasStaatRegels.Datum <= '" & tDate & "')tmp"
            If vm.isDatumChecked Then
                modDB.ExportKasStaatToXml(vm.bestandMap, query, Me.dgv1)
            Else
                modDB.ExportKasStaatToXml(vm.bestandMap, query, Me.dgv1)
            End If
        End If

    Catch ex As Exception
        WriteErrorLog("ucKasStaat", "btnExport_Click", ex)
    End Try
End Sub

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM