dataadapter填充不起作用

时间:2013-11-14 10:34:07

标签: vb.net datatable oledb dataadapter

我遇到问题我的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上返回数据。

1 个答案:

答案 0 :(得分:0)

通过在我的usercontrol上添加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