Dim MisTablas As New DataSet
Private Function DigaMeCualFichero() As String
' Si ruta y nombre completo :
Dim NombreFichero As String = "D:\Tmp\MiCarpeta\MiFichero.csv" ' es mi ejemplo
Return NombreFichero
End Function
Private Sub BCargar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BCargar.Click
Dim FicheroALeer As System.IO.StreamReader
Dim LosDatos As DataTable
Dim LineaLeida As String
Dim SeparadorSplit As Char() = {";"} ' a ver si el separador el ; o el ,
Dim DatosTMP() As String
FicheroALeer = New System.IO.StreamReader(DigaMeCualFichero(), True) ' Abrir el fichero csv
LosDatos = New DataTable
' Tomar las cabezas de las columnas (leer la primera linea) y crear las columans del DataTable
LineaLeida = FicheroALeer.ReadLine
DatosTMP = LineaLeida.Split(SeparadorSplit)
For Indice As Integer = 0 To DatosTMP.Length - 1
LosDatos.Columns.Add(DatosTMP(Indice))
Next
' Tomar los datos de cada linea y llenar el DataTable
Do Until FicheroALeer.Peek = -1
LineaLeida = FicheroALeer.ReadLine
DatosTMP = LineaLeida.Split(SeparadorSplit)
LosDatos.Rows.Add(DatosTMP)
Loop
LosDatos.TableName = "TodosDatos" ' Dar nombre para hacer mas facil mas tarde
MisTablas.Tables.Add(LosDatos)
FicheroALeer.Close()
FicheroALeer.Dispose()
' Unir el DataGridView con el DataTable, si es que quieres
DGVResultados.DataSource = MisTablas.Tables("TodosDatos")
End Sub