Voici une solution simple qui utilise le pilote texte ODBC de ADO.Net:
Dim csvFileFolder As String = "C:\YourFileFolder"
Dim csvFileName As String = "YourFile.csv"
'Note that the folder is specified in the connection string,
'not the file. That's specified in the SELECT query, later.
Dim connString As String = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" _
& csvFileFolder & ";Extended Properties=""Text;HDR=No;FMT=Delimited"""
Dim conn As New Odbc.OdbcConnection(connString)
'Open a data adapter, specifying the file name to load
Dim da As New Odbc.OdbcDataAdapter("SELECT * FROM [" & csvFileName & "]", conn)
'Then fill a data table, which can be bound to a grid
Dim dt As New DataTable
da.Fill(dt)
grdCSVData.DataSource = dt
Une fois rempli, vous pouvez évaluer les propriétés de la datatable, comme ColumnName, pour utiliser toutes les puissances des objets de données ADO.Net.
Dans VS2008, vous pouvez utiliser Linq pour obtenir le même effet.
Beaucoup de code. Pourquoi ne pas utiliser le TextParser intégré dans VB.NET? http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser.aspx – MarkJ
Étant donné que les fichiers CSV n'ont jamais été strictement définis, j'ai l'impression que l'utilisation d'une bibliothèque intégrée entraînera inévitablement un syndrome de boîte noire. Quelque chose ne marchera pas et vous ne saurez pas pourquoi. C'est une question de préférence, je suppose. –