DatagridView无法从DataTable加载

时间:2016-08-26 16:56:12

标签: database vb.net datagridview datatable

我正在尝试从数据库加载数据,然后在DatagridView中显示它。我根据各种在线网站的建议尝试了使用不同类的不同组合,如SQLDataAdapter,DataBinding。

然而没有任何作用..

这是我的代码:

    Dim sql As String

    sql = "select "
    sql = sql & " dbo.tblMvMovimentos.Sigla, dbo.tblMvMovimentos.numero,dbo.tblMvMovimentos.chkdigit,"
    sql = sql & " CodTipocontentor,Dim, dbo.tblMvMovimentos.CodArmador,CodDebito,"
    sql = sql & " DataEntrada, EstadoCarga, PesoBascula, "
    sql = sql & "  FrigoTemperatura, FrigoLigado, Observacoes"

    sql = sql & " from  tblMvMovimentos INNER JOIN dbo.tblCtContentores ON"
    sql = sql & " dbo.tblMvMovimentos.Sigla = dbo.tblCtContentores.Sigla AND"
    sql = sql & " dbo.tblMvMovimentos.Numero = dbo.tblCtContentores.Numero"

    Dim rs As ADODB.Recordset

    Consulta(sql, rs)


    da = New OleDb.OleDbDataAdapter
    ds = New DataTable()
    da.Fill(ds, rs)
    MessageBox.Show(rs.RecordCount)
    MessageBox.Show(ds.Rows.Count)



    With DataGridView1
        .AutoGenerateColumns = False
        .DataSource = ds
        .Refresh()
    End With



    MessageBox.Show(DataGridView1.RowCount)

Consulta是一个处理对db的查询的函数。我编写了这些消息框,以查看数据是否实际被加载,它既是记录集又是DataTable。但是最后一个,引用datagrid返回0并且datagridview显示为全灰色。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

With DataGridView1
    .AutoGenerateColumns = True
    .DataSource = ds
    .Refresh()
End With

设置AutoGenerateColumns = False时,必须自己定义列。如果将其设置为True,它将根据数据源确定列。

-E