2016-08-26 10 views
1

私はデータベースからデータをロードし、それをDatagridViewに表示しようとしています。私は、様々なオンラインWebサイトの提案に従って、SQLDataAdapter、DataBindingなどの異なるクラスを使用してさまざまな組み合わせを試しました。しかし、何も動作DatagridViewがDataTableからロードされていません

..

これは私のコードです:

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はすべて灰色で表示されます。誰かが私を正しい方向に向けることができますか?

答えて

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

AutoGenerateColumns = Falseに設定すると、自分で列を定義する必要があります。これをTrueに設定すると、データソースに基づいて列が決定されます。

-e

関連する問題