Here is a simple code to read CSV file and convert it to a DataTable using CSharp (C#). String enclosed with double quotes will not break the convertion process. In my previous post I have converted a DataTable to CSV with it's header. Check my previous post Click Here. So I have taken the first line in CSV as DataTable column headers.
C# Code:
Call the ConvertCSVtoDataTable function like below by passing path of the CSV file.
- public static DataTable ConvertCSVtoDataTable(string strFilePath)
- {
- StreamReader sr = new StreamReader(strFilePath);
- string[] headers = sr.ReadLine().Split(',');
- DataTable dt = new DataTable();
- foreach (string header in headers)
- {
- dt.Columns.Add(header);
- }
- while (!sr.EndOfStream)
- {
- string[] rows = Regex.Split(sr.ReadLine(), ",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");
- DataRow dr = dt.NewRow();
- for (int i = 0; i < headers.Length; i++)
- {
- dr[i] = rows[i];
- }
- dt.Rows.Add(dr);
- }
- return dt;
- }
- static void Main(string[] args)
- {
- string filepath = "d://ConvertedFile.csv";
- DataTable res = ConvertCSVtoDataTable(filepath);
- }