I'm going to explain how extract data from CSV file using c#. First you have to declare two string variables and their properties for store directory and filename of CSV file which you want to extract data.
private string dirCSV;
private string fileNevCSV;
public string FileNevCSV
{
   get { return fileNevCSV; }
   set { fileNevCSV = value; }
}
public string dirCSV
{
   get { return dirCSV; }
   set { dirCSV = value; }
}
In the second step connect to the data source and fill it to the dataset.
public DataSet loadCVS(int noofrows)
{
   DataSet ds = new DataSet();
   try
   {
       // Creates and opens an ODBC connection
      string strConnString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + this.dirCSV.Trim() +";Extensions=asc,csv,tab,txt;Persist Security Info=False";
       string sql_select;
       OdbcConnection conn;
       conn = new OdbcConnection(strConnString.Trim());
       conn.Open();
       //Creates the select command text
       if (noofrows == -1)
       {
           sql_select = "select * from [" + this.FileNevCSV.Trim() + "]";
       }
       else
       {
           sql_select = "select top " + noofrows + " * from [" + this.FileNevCSV.Trim() + "]";
       }
       //Creates the data adapter
       OdbcDataAdapter obj_oledb_da = new OdbcDataAdapter(sql_select, conn);
       //Fills dataset with the records from CSV file
       obj_oledb_da.Fill(ds, "csv");
       //closes the connection
       conn.Close();
   }
   catch (Exception e) //Error
   {
   }
   return ds;
}
In the third step extract data to DataTable from generated DataSet.
this.dirCSV = "file path";
this.fileNevCSV ="file name";
DataSet ds = loadCVS(-1);
DataTable table = ds.Tables[0];
foreach (DataRow row in table.Rows)
{
//iterate through the DataTable.
}
Thanks.
Happy coding...