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