So,first off,you will need to add the namespaces System.IO and System.Data.OleDb.The first we need because we will be doing some path manipulation,and the second gives us access to what we will need to do CSV parsing.We've created a nice static function here that takes a path to a CSV file and returns the contents of the file in a DataTable (which is really easy to view and manipulate).The weird thing about all of this is that the CSV file gets treated as a database table.We need to create a connection string with the Jet OLEDB provider,and you set the Data Source to be the directory that contains the CSV file.Under extended properties,'text' means that we are parsing a text file (as opposed to, say,an Excel file),the HDR property can be set to 'Yes' (the first row in the CSV files is header information) or 'No' (there is no header row), and setting the FMT property set to 'Delimited' essentially says that we will be working with a comma separated value file.You can also set FMT to 'FixedLength',for files where the fields are fixed length - but that wouldn't be a CSV file anymore,would it?The next part to do is create the actual query.In this case, we want everything,so we have a "SELECT *".What are we selecting from? Well,in this somewhat twisted worldview,the directory is the database,so the file is the table we are selecting from.Now we are into normal OLEDB territory - we create a DataTable that we will be filling with results, and we create a OleDbDataAdapter to actually execute the query.Then (inside of a try block, because it can throw an exception) we fill the data table with the results of the query.Afterwords,we clean up after ourselves by disposing the OleDbDataAdapter,and we return the now filled data table. |