0

我遇到了一个问题,我dataadapter没有用任何东西填充我datatable(甚至没有列)有人可以在这里给我帮助吗?

我正在使用的代码:

        '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

这里的问题是每次我检查列数并且行数始终为 0。具有相同日期范围的相同查询直接在 sql 上返回数据。

4

1 回答 1

0

通过在我的用户控件上添加 DatagridView 然后将其作为参数传递给我的导出函数来解决问题。代码下方:

用户控件表单命名空间:

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

datagridView 本身:

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

然后是按钮的代码:

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
于 2013-11-14T13:08:01.010 回答