Populating a dataset from a CSV file Populating a dataset from a CSV file asp.net asp.net

Populating a dataset from a CSV file


You need to add the reference Microsoft.VisualBasic.dll to use TextFieldParser Class.

 private static DataTable GetDataTabletFromCSVFile(string csv_file_path)        {            DataTable csvData = new DataTable();            try            {              using(TextFieldParser csvReader = new TextFieldParser(csv_file_path))                 {                    csvReader.SetDelimiters(new string[] { "," });                    csvReader.HasFieldsEnclosedInQuotes = true;                    string[] colFields = csvReader.ReadFields();                    foreach (string column in colFields)                    {                        DataColumn datecolumn = new DataColumn(column);                        datecolumn.AllowDBNull = true;                        csvData.Columns.Add(datecolumn);                    }                    while (!csvReader.EndOfData)                    {                        string[] fieldData = csvReader.ReadFields();                        //Making empty value as null                        for (int i = 0; i < fieldData.Length; i++)                        {                            if (fieldData[i] == "")                            {                                fieldData[i] = null;                            }                        }                        csvData.Rows.Add(fieldData);                    }                }            }            catch (Exception ex)            {            }            return csvData;        }      }

See this article for more info : http://www.morgantechspace.com/2013/08/how-to-read-data-from-csv-file-in-c.html


You need to run a SELECT statement against the CSV file to fill the dataset:

Edit: here's some sample code from http://carllbrown.blogspot.co.uk/2007/09/populate-dataset-from-csv-delimited_18.html

string FileName = ...OleDbConnection conn = new OleDbConnection       ("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " +          Path.GetDirectoryName(FileName) +          "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\"");conn.Open();OleDbDataAdapter adapter = new OleDbDataAdapter       ("SELECT * FROM " + Path.GetFileName(FileName), conn);DataSet ds = new DataSet("Temp");adapter.Fill(ds);conn.Close();


You can use Library like Fast CSV Reader then

using System.IO;using LumenWorks.Framework.IO.Csv;void ReadCsv(){    // open the file "data.csv" which is a CSV file with headers    using (CsvReader csv = new CsvReader(                           new StreamReader("data.csv"), true))    {        myDataRepeater.DataSource = csv;        myDataRepeater.DataBind();    }}