Che io sappia, una volta popolato il Dataset (e la sua DataTable) lo passo alla DataGrid per la "popolazione"
Nell'esempio seguente popolo un datagrid con l'elenco delle visiti di un venditore.
cmd è un oggetto Command
daVisite è un oggetto DataAdapter
dsVisite è un Dataset
e dGrid1 è un controllo DataGrid
cmd.CommandText = strSQL
If con.State = ConnectionState.Closed Then con.Open()
cmd.Connection = con
daVisite.SelectCommand = cmd
'Popolo la Table
dGrid1.DataSource = Nothing
If dsVisite.Tables.CanRemove(dsVisite.Tables("Visite")) Then
dsVisite.Tables.Remove("Visite")
End If
daVisite.Fill(dsVisite, "Visite")
dsVisite.Tables("Visite").Columns("VisitaID").ColumnMapping = MappingType.Hidden
dGrid1.DataSource = dsVisite.Tables("Visite")